Flat Theme

Flat design with saturated colors, zero border-radius, and geometric clip-path shapes.

Install

pnpm add @vultra/tokens

Usage

<script>
  import '@vultra/tokens/flat.css';
</script>

Token Differences

TokenshadcnFlat
--ui-radius0.625rem0px
--ui-shadow-*subtlenone
--ui-borderoklch subtleoklch black
FontInterOutfit

Flat Color Palette

--flat-red: #ef4444;
--flat-blue: #3b82f6;
--flat-green: #22c55e;
--flat-yellow: #eab308;
--flat-purple: #a855f7;
--flat-pink: #ec4899;
--flat-orange: #f97316;
--flat-teal: #14b8a6;

Clip-Path Polygons

--clip-hexagon: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
--clip-diamond: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
--clip-pentagon: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
--clip-star: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
--clip-triangle: polygon(50% 0%, 0% 100%, 100% 100%);
--clip-octagon: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);

Flat Composites

For geometric components, use @vultra/flat:

<script>
  import '@vultra/tokens/flat.css';
  import { BlobCard, HexagonGrid, DiamondBadge, WaveSection, PentagonStat, StarCard } from '@vultra/flat';
</script>

<BlobCard color="blue" title="Hello">
  Content here
</BlobCard>

<HexagonGrid columns={3}>
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</HexagonGrid>

<PentagonStat value="98%" label="Satisfaction" color="green" />

Available Flat Components

ComponentShapeDescription
BlobCardSVG blobOrganic-shaped card
HexagonGridHexagonHoneycomb layout container
DiamondBadgeDiamondRotated label
WaveSectionWaveSection divider with SVG wave
PentagonStatPentagonMetric display
StarCardStarHighlight card
TriangleAlertTriangleWarning banner
CircleAvatarCircleAvatar with colored ring

Dark Mode

[data-ui-theme="flat-dark"] {
  /* dark tokens */
}