Add Company Card layout page based on existing object card and chart components
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Styleguide – Layout Company Card</title>
|
||||
<link rel="stylesheet" href="../styleguide.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 class="sg-main-heading">Layout – Company Card</h1>
|
||||
|
||||
<section aria-label="Company Card Layout">
|
||||
<p class="sg-preview-label">Layout: Company Card</p>
|
||||
|
||||
<article class="sg-card sg-object-card" data-pattern="object-card" aria-label="Company Card NVIDIA Corporation">
|
||||
<header class="sg-card-segment sg-card-segment--header sg-card-segment--darkblue sg-object-card__header" data-pattern-part="object-card-header">
|
||||
<div class="sg-strong">NVIDIA Corporation</div>
|
||||
<div class="sg-sandwich-menu-wrap" data-open="false" data-align="right" data-component="sandwich-menu" data-component-size="small">
|
||||
<button class="sg-interaction-element sg-sandwich-button sg-sandwich-button--small" type="button" aria-expanded="false" aria-label="Menü öffnen" data-component-part="sandwich-trigger">
|
||||
<span class="sg-sandwich-button__icon" aria-hidden="true">
|
||||
<span class="sg-sandwich-button__line"></span>
|
||||
<span class="sg-sandwich-button__line"></span>
|
||||
<span class="sg-sandwich-button__line"></span>
|
||||
</span>
|
||||
</button>
|
||||
<div class="sg-sandwich-menu-panel" aria-label="Ausgeklapptes Menü" data-component-part="sandwich-panel">
|
||||
<a class="sg-sandwich-menu-link sg-body" href="#">Menüpunkt</a>
|
||||
<a class="sg-sandwich-menu-link sg-body" href="#">Menüpunkt</a>
|
||||
<a class="sg-sandwich-menu-link sg-body" href="#">Menüpunkt</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="sg-card-segment sg-card-segment--body sg-object-card__content" data-pattern-part="object-card-content">
|
||||
<p class="sg-strong">Score:</p>
|
||||
<div class="sg-score-bar-item" data-component="score-bar">
|
||||
<div class="sg-score-bar sg-score-bar--marker-mid" data-component-part="score-track">
|
||||
<div class="sg-score-bar__value sg-score-bar__value--positive sg-score-bar__value--w96" data-component-part="score-value" data-component-state="positive"></div>
|
||||
<div class="sg-score-bar__median-marker" data-component-part="score-median-marker"></div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="sg-strong">PE: 45.1</p>
|
||||
<p class="sg-strong">PE forw.: 19.3</p>
|
||||
<p class="sg-strong">PEG: 0.53</p>
|
||||
</div>
|
||||
|
||||
<div class="sg-card-segment sg-card-segment--body sg-object-card__content" data-pattern-part="object-card-content">
|
||||
<p class="sg-body">Fundamentalanalyse vom 8.5.2026:</p>
|
||||
<div class="sg-score-bar-list" data-component="score-bar-list">
|
||||
<div class="sg-score-bar-item" data-component="score-bar">
|
||||
<p class="sg-score-bar-label sg-bar-label" data-component-part="score-label">Marktbewertung</p>
|
||||
<div class="sg-score-bar sg-score-bar--marker-mid" data-component-part="score-track">
|
||||
<div class="sg-score-bar__value sg-score-bar__value--positive sg-score-bar__value--w96" data-component-part="score-value" data-component-state="positive"></div>
|
||||
<div class="sg-score-bar__median-marker" data-component-part="score-median-marker"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sg-score-bar-item" data-component="score-bar">
|
||||
<p class="sg-score-bar-label sg-bar-label" data-component-part="score-label">Wachstum</p>
|
||||
<div class="sg-score-bar sg-score-bar--marker-mid" data-component-part="score-track">
|
||||
<div class="sg-score-bar__value sg-score-bar__value--positive sg-score-bar__value--w96" data-component-part="score-value" data-component-state="positive"></div>
|
||||
<div class="sg-score-bar__median-marker" data-component-part="score-median-marker"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sg-score-bar-item" data-component="score-bar">
|
||||
<p class="sg-score-bar-label sg-bar-label" data-component-part="score-label">Profitabilität</p>
|
||||
<div class="sg-score-bar sg-score-bar--marker-mid" data-component-part="score-track">
|
||||
<div class="sg-score-bar__value sg-score-bar__value--positive sg-score-bar__value--w96" data-component-part="score-value" data-component-state="positive"></div>
|
||||
<div class="sg-score-bar__median-marker" data-component-part="score-median-marker"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sg-score-bar-item" data-component="score-bar">
|
||||
<p class="sg-score-bar-label sg-bar-label" data-component-part="score-label">Stabilität</p>
|
||||
<div class="sg-score-bar sg-score-bar--marker-mid" data-component-part="score-track">
|
||||
<div class="sg-score-bar__value sg-score-bar__value--positive sg-score-bar__value--w96" data-component-part="score-value" data-component-state="positive"></div>
|
||||
<div class="sg-score-bar__median-marker" data-component-part="score-median-marker"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="sg-strong">Moat: Sehr stark</p>
|
||||
<p class="sg-body">Attraktiver GARP-Kandidat mit dominantem KI-Ökosystem und aussergewöhnlicher Profitabilität. Das zentrale Risiko liegt in der zyklischen Abhängigkeit vom KI-Boom und zunehmendem Wettbewerb.</p>
|
||||
</div>
|
||||
|
||||
<footer class="sg-card-segment sg-card-segment--body sg-object-card__actions-segment" data-pattern-part="object-card-actions">
|
||||
<div class="sg-object-card__actions">
|
||||
<button class="sg-interaction-element sg-button sg-button--active sg-object-card__action" type="button">Detailanalyse</button>
|
||||
<button class="sg-interaction-element sg-button sg-button--active sg-object-card__action" type="button">Zur Peer Group</button>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
document.querySelectorAll('.sg-sandwich-menu-wrap').forEach((wrap) => {
|
||||
const button = wrap.querySelector('.sg-sandwich-button');
|
||||
const panel = wrap.querySelector('.sg-sandwich-menu-panel');
|
||||
|
||||
if (!button) {
|
||||
return;
|
||||
}
|
||||
|
||||
button.addEventListener('click', (event) => {
|
||||
event.stopPropagation();
|
||||
const nextState = wrap.dataset.open !== 'true';
|
||||
|
||||
document.querySelectorAll('.sg-sandwich-menu-wrap').forEach((otherWrap) => {
|
||||
const otherButton = otherWrap.querySelector('.sg-sandwich-button');
|
||||
otherWrap.dataset.open = 'false';
|
||||
if (otherButton) {
|
||||
otherButton.setAttribute('aria-expanded', 'false');
|
||||
}
|
||||
});
|
||||
|
||||
wrap.dataset.open = String(nextState);
|
||||
button.setAttribute('aria-expanded', String(nextState));
|
||||
|
||||
if (!nextState || !panel) {
|
||||
return;
|
||||
}
|
||||
|
||||
wrap.dataset.align = 'right';
|
||||
const panelRect = panel.getBoundingClientRect();
|
||||
if (panelRect.left < 0) {
|
||||
wrap.dataset.align = 'left';
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('click', (event) => {
|
||||
if (event.target.closest('.sg-sandwich-menu-wrap')) {
|
||||
return;
|
||||
}
|
||||
|
||||
document.querySelectorAll('.sg-sandwich-menu-wrap').forEach((wrap) => {
|
||||
const button = wrap.querySelector('.sg-sandwich-button');
|
||||
wrap.dataset.open = 'false';
|
||||
if (button) {
|
||||
button.setAttribute('aria-expanded', 'false');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user