Zoeken...  ⌘K GitHub

TextMono text

Monospace tekst blok voor technische content.

/text-mono
src/components/text/TextMono.astro
---
/**
 * TextMono
 * Monospace/code-stijl tekstblok
 */
interface Props {
  headline?: string;
  items?: string[];
}
const { headline = 'Onze werkwijze in vijf stappen', items = [
  '01. intake_analyse() → markt, doelgroep, concurrenten',
  '02. strategie_bouwen() → kanalen, KPIs, budgetverdeling',
  '03. content_creatie() → copy, visuals, campagne-assets',
  '04. lancering() → live op alle gekozen kanalen',
  '05. optimalisatie_loop() → meten → leren → verbeteren',
] } = Astro.props;
---

<div class="tmono-wrap">
  {headline && <p class="tmono-headline">{headline}</p>}
  <div class="tmono-terminal">
    <div class="tmono-bar">
      <span class="tmono-dot tmono-dot--r"></span>
      <span class="tmono-dot tmono-dot--y"></span>
      <span class="tmono-dot tmono-dot--g"></span>
      <span class="tmono-file">blurr-process.sh</span>
    </div>
    <ul class="tmono-list">
      {items.map(item => (
        <li class="tmono-item">
          <span class="tmono-prompt">$</span>
          <span>{item}</span>
        </li>
      ))}
    </ul>
  </div>
</div>

<style>
  .tmono-wrap {
    --color-accent: #6366f1;
    --color-primary: #0a0a0a;
    font-family: system-ui, sans-serif;
    max-width: 680px;
    padding: 24px;
  }
  .tmono-headline {
    margin: 0 0 16px;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-primary);
  }
  .tmono-terminal {
    background: #0f0f0f;
    border-radius: 10px;
    overflow: hidden;
  }
  .tmono-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    background: #1a1a1a;
    border-bottom: 1px solid #2a2a2a;
  }
  .tmono-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
  }
  .tmono-dot--r { background: #ff5f56; }
  .tmono-dot--y { background: #ffbd2e; }
  .tmono-dot--g { background: #27c93f; }
  .tmono-file {
    margin-left: 8px;
    font-size: 0.72rem;
    color: #6b7280;
    font-family: 'Courier New', monospace;
  }
  .tmono-list {
    list-style: none;
    margin: 0;
    padding: 20px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .tmono-item {
    display: flex;
    gap: 12px;
    font-family: 'Courier New', Courier, monospace;
    font-size: 0.85rem;
    color: #e2e8f0;
    line-height: 1.5;
  }
  .tmono-prompt {
    color: var(--color-accent);
    flex-shrink: 0;
    font-weight: 700;
  }
</style>

Props

Prop Type Default Beschrijving
headline string Headline
items string[] Monospace items

* = verplicht