7k-design-system 1.2.0 → 1.3.0-edge.ee94c56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/CONSUMER_GUIDE.md +24 -1
- package/DESIGN.md +39 -39
- package/README.md +3 -3
- package/dist/7k-design-system.css +1 -1
- package/dist/animations.css +1 -1
- package/dist/components.css +1 -1
- package/dist/fonts/Geist-Variable.woff2 +0 -0
- package/dist/fonts/GeistMono-Variable.woff2 +0 -0
- package/dist/react/components/DataTable.d.ts +2 -0
- package/dist/react/components/EmptyState.d.ts +2 -0
- package/dist/react/components/Stat.d.ts +2 -0
- package/dist/react/components/TextureOverlay.d.ts +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.js +332 -237
- package/dist/react/types.d.ts +37 -1
- package/dist/textures.css +1 -1
- package/fonts/Geist-Variable.woff2 +0 -0
- package/fonts/GeistMono-Variable.woff2 +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [1.3.0](https://github.com/7K-Group/7k-design-system/compare/v1.2.0...v1.3.0) (2026-10-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* data-display components, u-* utilities, legacy class conformance, edge releases ([441ec7b](https://github.com/7K-Group/7k-design-system/commit/441ec7b72993d75899127ed803d273965434fb16))
|
|
7
|
+
|
|
8
|
+
# [1.3.0](https://github.com/7K-Group/7k-design-system/compare/v1.2.0...v1.3.0) (2026-10-08)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* add `Stat`, `EmptyState`, and `DataTable` React components (`.stat`/`.empty`/`.table` compositions with loading skeletons, sortable headers, and a mobile stacked-card transform) plus `.banner-count`/`.banner-link` banner slots ([3eae951](https://github.com/7K-Group/7k-design-system/commit/3eae951))
|
|
14
|
+
* add token-based `u-*` utility classes (`utilities.css`): text/background/border helpers with explicit opacity and hover variants
|
|
15
|
+
|
|
16
|
+
### Breaking Changes
|
|
17
|
+
|
|
18
|
+
* rename legacy class families for consistency: `isometric-*` → `iso-*`, bare texture classes → `bg-*` (e.g. `.scanline` → `.bg-scanline`), `.pixel-*` → `.font-pixel-*`, `.pixel-fade-in`/`.pixel-dots` → `.step-fade-in`/`.step-dots`; `TextureOverlay` prop `animate` → `animated`; the conflicting duplicate `.texture-overlay` in isometric.css is now `.overlay-fill`
|
|
19
|
+
|
|
1
20
|
# [1.2.0](https://github.com/7K-Group/7k-design-system/compare/v1.1.1...v1.2.0) (2026-10-08)
|
|
2
21
|
|
|
3
22
|
|
package/CONSUMER_GUIDE.md
CHANGED
|
@@ -310,6 +310,29 @@ Mount toasts in a fixed container at the top of your app (they use `role="status
|
|
|
310
310
|
<Textarea rows={4} />
|
|
311
311
|
```
|
|
312
312
|
|
|
313
|
+
#### Data display (1.3.0)
|
|
314
|
+
|
|
315
|
+
```tsx
|
|
316
|
+
<Stat value="24" label="Clusters" accent trend="+2" />
|
|
317
|
+
<EmptyState title="No clusters" body="Register one to get started" action={<Button variant="accent">Register</Button>} />
|
|
318
|
+
<DataTable
|
|
319
|
+
columns={[
|
|
320
|
+
{ key: 'name', label: 'Name' },
|
|
321
|
+
{ key: 'status', label: 'Status', mono: true, sortable: true },
|
|
322
|
+
]}
|
|
323
|
+
rows={rows}
|
|
324
|
+
rowKey="id"
|
|
325
|
+
loading={isLoading} // renders skeleton rows
|
|
326
|
+
empty={<EmptyState title="No rows" />}
|
|
327
|
+
onSort={(key) => sort(key)}
|
|
328
|
+
sortKey={sortKey}
|
|
329
|
+
sortDirection="asc"
|
|
330
|
+
pagination={<div className="pagination">…</div>}
|
|
331
|
+
/>
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
`DataTable` composes the `.table` classes: mono uppercase headers, sortable-column buttons, skeleton rows while `loading`, an `empty` slot when there are no rows, and a stacked-card transform on narrow viewports (≤640px, each cell labelled via `data-label`).
|
|
335
|
+
|
|
313
336
|
Form notes: passing `error` to `Input` adds the `.error` class (danger border) and wires `aria-invalid` + an alert-role message automatically (for `Textarea`/`Select`, add the `error` class and `aria-invalid` manually). Custom `Checkbox`/`Radio`/`Toggle` render a visually-hidden native input — keyboard focus shows a magenta focus ring on the custom control via `:focus-visible`. `Tabs` supports full arrow-key / Home / End navigation with roving tabindex per the ARIA tabs pattern.
|
|
314
337
|
|
|
315
338
|
---
|
|
@@ -390,7 +413,7 @@ function App() {
|
|
|
390
413
|
|
|
391
414
|
- **Don't hard-code colors** — Avoid hex values; use design tokens
|
|
392
415
|
- **Don't import CSS in components** — Import once at app level
|
|
393
|
-
- **Don't mix textures** — Don't put `.scanline` inside `.halftone`
|
|
416
|
+
- **Don't mix textures** — Don't put `.bg-scanline` inside `.halftone`
|
|
394
417
|
- **Don't override component internals** — Style via props or wrapper classes
|
|
395
418
|
- **Don't forget data-theme** — Light mode requires `data-theme="light"` on <html>
|
|
396
419
|
|
package/DESIGN.md
CHANGED
|
@@ -162,7 +162,7 @@ Company/project differentiation: 7KGroup (parent) uses vivid magenta (`--brand-p
|
|
|
162
162
|
- **Diagonal stripes**: 45° hatch lines at 7px or 4px pitch. Negative variant overlays pure white-on-black for high-contrast sections.
|
|
163
163
|
- **Horizontal / vertical stripes**: Linear parallel lines at 9px or 5px pitch for directional motion cues.
|
|
164
164
|
- **Crosshatch**: Dual-angle hatch (45° + -45°) for dense shading in manga panel style. Standard and dense variants.
|
|
165
|
-
- **Checkerboard**: 12px alternating squares for pixel-art motifs.
|
|
165
|
+
- **Checkerboard**: 12px alternating squares for pixel-art motifs. High-contrast variant uses pure black/white.
|
|
166
166
|
- **Noise**: SVG fractal noise overlay at 128px tile, 4%–12% opacity for analog CRT grain. Animatable with translate keyframes.
|
|
167
167
|
- **Vignette**: Radial gradient from transparent center to black edge. Sharp variant clips tighter for manga panel corner fade.
|
|
168
168
|
|
|
@@ -180,23 +180,23 @@ Company/project differentiation: 7KGroup (parent) uses vivid magenta (`--brand-p
|
|
|
180
180
|
|
|
181
181
|
| Category | Classes | Density variants | Use case |
|
|
182
182
|
| ------------------ | ---------------------------------------------------------------------------- | -------------------------------- | -------------------------------------- |
|
|
183
|
-
| Scanline | `.scanline`, `.scanline-fast` | slow (8s), fast (3s) | Hero sections, full-bleed walls |
|
|
184
|
-
| Halftone dots | `.halftone-sm`, `.halftone-md`, `.halftone-lg`, `.halftone-accent` | 4px/6px/10px grid, accent-tinted | Manga panel backgrounds, card surfaces |
|
|
185
|
-
| Dot matrix | `.dot-matrix-dense`, `.dot-matrix`, `.dot-matrix-sparse` | 3px/6px/12px grid | Texture depth behind text, dividers |
|
|
186
|
-
| Diagonal stripes | `.diagonal-stripes`, `.diagonal-stripes-dense`, `.diagonal-stripes-negative` | 7px/4px pitch, pure B/W | Directional cues, loading areas |
|
|
187
|
-
| Horizontal stripes | `.stripes-h`, `.stripes-h-dense` | 9px/5px pitch | Section rhythm, horizontal dividers |
|
|
188
|
-
| Vertical stripes | `.stripes-v`, `.stripes-v-dense` | 9px/5px pitch | Sidebar textures, column dividers |
|
|
189
|
-
| Crosshatch | `.crosshatch`, `.crosshatch-dense` | 7px/4px dual-angle | Dense manga shading, error states |
|
|
190
|
-
| Checkerboard | `.checkerboard`, `.checkerboard-contrast` | 12px/16px grid, pure B/W | Retro sections, QR motifs |
|
|
191
|
-
| Noise | `.noise`, `.noise-heavy`, `.noise-animated` | 4%/12% opacity, SVG fractal | CRT grain, analog texture |
|
|
192
|
-
| Vignette | `.vignette-ink`, `.vignette-ink-sharp` | Soft/sharp radial fade | Panel corner fade, hero-edge vignette |
|
|
183
|
+
| Scanline | `.bg-scanline`, `.bg-scanline-fast` | slow (8s), fast (3s) | Hero sections, full-bleed walls |
|
|
184
|
+
| Halftone dots | `.bg-halftone-sm`, `.bg-halftone-md`, `.bg-halftone-lg`, `.bg-halftone-accent` | 4px/6px/10px grid, accent-tinted | Manga panel backgrounds, card surfaces |
|
|
185
|
+
| Dot matrix | `.bg-dot-matrix-dense`, `.bg-dot-matrix`, `.bg-dot-matrix-sparse` | 3px/6px/12px grid | Texture depth behind text, dividers |
|
|
186
|
+
| Diagonal stripes | `.bg-diagonal-stripes`, `.bg-diagonal-stripes-dense`, `.bg-diagonal-stripes-negative` | 7px/4px pitch, pure B/W | Directional cues, loading areas |
|
|
187
|
+
| Horizontal stripes | `.bg-stripes-h`, `.bg-stripes-h-dense` | 9px/5px pitch | Section rhythm, horizontal dividers |
|
|
188
|
+
| Vertical stripes | `.bg-stripes-v`, `.bg-stripes-v-dense` | 9px/5px pitch | Sidebar textures, column dividers |
|
|
189
|
+
| Crosshatch | `.bg-crosshatch`, `.bg-crosshatch-dense` | 7px/4px dual-angle | Dense manga shading, error states |
|
|
190
|
+
| Checkerboard | `.bg-checkerboard`, `.bg-checkerboard-contrast` | 12px/16px grid, pure B/W | Retro sections, QR motifs |
|
|
191
|
+
| Noise | `.bg-noise`, `.bg-noise-heavy`, `.bg-noise-animated` | 4%/12% opacity, SVG fractal | CRT grain, analog texture |
|
|
192
|
+
| Vignette | `.bg-vignette-ink`, `.bg-vignette-ink-sharp` | Soft/sharp radial fade | Panel corner fade, hero-edge vignette |
|
|
193
193
|
|
|
194
194
|
### Texture composition rules
|
|
195
195
|
|
|
196
196
|
1. **One texture per section layer.** Apply at most one texture on the background layer and one on the overlay layer (`::after`). Scanline + halftone is the default pair for hero sections.
|
|
197
197
|
2. **Opacity scales with section density.** Hero/landing sections use lighter textures (5–10% opacity). Data-dense utility sections use stronger textures (10–15% opacity) or none.
|
|
198
198
|
3. **Texture on components is allowed with restraint.** Cards, panels, modals, drawers, and buttons can carry low-opacity texture overlays (`::before`, `pointer-events: none`) as long as the texture sits behind content and does not reduce contrast. Inputs and form controls should remain solid to preserve legibility. Use `.card-halftone`, `.surface-scanline`, `.btn-halftone`, `.modal-noise`, etc.
|
|
199
|
-
4. **Texture as section separator.** When transitioning between full-bleed sections, add a `.separator-solid` or `.stripes-h` band (40–80px tall) as a visual break — never use shadow or blur transitions.
|
|
199
|
+
4. **Texture as section separator.** When transitioning between full-bleed sections, add a `.bg-separator-solid` or `.bg-stripes-h` band (40–80px tall) as a visual break — never use shadow or blur transitions.
|
|
200
200
|
5. **Layering order:** Base color → texture background → content container → optional scanline overlay. The overlay must have `pointer-events: none` and `z-index: 1` so it does not block interaction.
|
|
201
201
|
6. **Full-bleed hero walls** use scanline + vignette simultaneously: scanline on `::after` for the line pattern, vignette on `::before` for the edge fade. Both get `pointer-events: none`.
|
|
202
202
|
|
|
@@ -214,11 +214,11 @@ Section 4 (cta) — Scanline-fast overlay, invert section if 1-bit
|
|
|
214
214
|
|
|
215
215
|
### 1-bit section variants
|
|
216
216
|
|
|
217
|
-
- **Full invert section**: swap `--bg-base` with `--color-paper`, `--text-primary` with `--color-ink`. Used for CTAs, callout panels, or manga-style splash panels. Add `.diagonal-stripes-negative` for max contrast.
|
|
217
|
+
- **Full invert section**: swap `--bg-base` with `--color-paper`, `--text-primary` with `--color-ink`. Used for CTAs, callout panels, or manga-style splash panels. Add `.bg-diagonal-stripes-negative` for max contrast.
|
|
218
218
|
- **Scanline hero**: dark canvas, scanline overlay, accent headline with glow. The scanline `::after` sits above the background but below all content (`z-index: 1`). Content gets `position: relative; z-index: 2`.
|
|
219
|
-
- **Halftone card wall**: grid of cards with `.halftone-sm` or `.halftone-md` on the section container. Each card has solid `.card` background that breaks the texture — texture only lives between cards.
|
|
220
|
-
- **Noise backdrop**: `.noise` on full-page backgrounds for analog feel. Use `.noise-heavy` only on splash/loading screens where content density is low.
|
|
221
|
-
- **Vignette frame**: `.vignette-ink` on slide/scene containers to draw the eye center. Used in intro animations and splash panels.
|
|
219
|
+
- **Halftone card wall**: grid of cards with `.bg-halftone-sm` or `.bg-halftone-md` on the section container. Each card has solid `.card` background that breaks the texture — texture only lives between cards.
|
|
220
|
+
- **Noise backdrop**: `.bg-noise` on full-page backgrounds for analog feel. Use `.bg-noise-heavy` only on splash/loading screens where content density is low.
|
|
221
|
+
- **Vignette frame**: `.bg-vignette-ink` on slide/scene containers to draw the eye center. Used in intro animations and splash panels.
|
|
222
222
|
|
|
223
223
|
## 1c. Isometric Backgrounds — CSS-only 3D Perspective Patterns
|
|
224
224
|
|
|
@@ -228,17 +228,17 @@ Section 4 (cta) — Scanline-fast overlay, invert section if 1-bit
|
|
|
228
228
|
|
|
229
229
|
| Class | Description | Technique |
|
|
230
230
|
| ------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------- |
|
|
231
|
-
| `.
|
|
232
|
-
| `.
|
|
233
|
-
| `.
|
|
234
|
-
| `.
|
|
235
|
-
| `.
|
|
236
|
-
| `.
|
|
237
|
-
| `.
|
|
238
|
-
| `.
|
|
239
|
-
| `.
|
|
240
|
-
| `.
|
|
241
|
-
| `.
|
|
231
|
+
| `.iso-grid` | Diamond tiling from dual 30°/-30° hatch lines at 24px pitch | `repeating-linear-gradient(30deg)` + `(-30deg)` |
|
|
232
|
+
| `.iso-grid-dense` | Tighter 12px diamond grid | Same technique, denser pitch |
|
|
233
|
+
| `.iso-grid-accent` | Magenta-tinted 24px diamond grid | Same, with `--magenta-500 / 0.12` stroke |
|
|
234
|
+
| `.iso-cubes` | 3-face cube wall: right (150°), top (-30°), left (30°) faces at 40px | 3 `repeating-linear-gradient` layers with face-specific opacity |
|
|
235
|
+
| `.iso-cubes-dense` | 20px cube wall | Same, finer resolution |
|
|
236
|
+
| `.iso-cubes-accent` | Magenta-tinted cube wall | Same, with accent hue fills |
|
|
237
|
+
| `.iso-pyramid` | Ascending zigzag steps: 150° + -30° gradients | Dual gradient with offset phase |
|
|
238
|
+
| `.iso-hex` | Honeycomb hex grid from 60°/-60°/0° overlapping | 3 `repeating-linear-gradient` layers |
|
|
239
|
+
| `.iso-pipes` | Converging tunnel perspective: left/right walls (30°/-30°) + floor (0°) | 3-gradient tunnel simulation |
|
|
240
|
+
| `.iso-pipes-fast` | Denser tunnel, 8px walls | Same, tighter spacing |
|
|
241
|
+
| `.iso-terrain` | Multi-layer depth: horizontal + 30° + -30° zigzag | 3-layer parallax-ready composition |
|
|
242
242
|
|
|
243
243
|
### Composition rules
|
|
244
244
|
|
|
@@ -636,9 +636,9 @@ Sharp (0px) and subtle (2–4px) are preferred for 1-bit elements. 8–12px for
|
|
|
636
636
|
|
|
637
637
|
- Scanline overlay on hero / full-bleed sections
|
|
638
638
|
- Halftone dot separators between content blocks
|
|
639
|
-
- Full-bleed sections use `.separator-solid` (2px white line at 25% opacity) as rhythm breaks
|
|
639
|
+
- Full-bleed sections use `.bg-separator-solid` (2px white line at 25% opacity) as rhythm breaks
|
|
640
640
|
- Texture shift between sections: scanline → solid → halftone → solid → scanline. Never two textured sections adjacent.
|
|
641
|
-
- Manga panel composition: content is the "panel" (solid black border), background is the "page" (noise or scanline). Each panel gets a `.vignette-ink` edge fade.
|
|
641
|
+
- Manga panel composition: content is the "panel" (solid black border), background is the "page" (noise or scanline). Each panel gets a `.bg-vignette-ink` edge fade.
|
|
642
642
|
|
|
643
643
|
### Product shell layout
|
|
644
644
|
|
|
@@ -851,8 +851,8 @@ These classes add thin color to any 1-bit component without breaking the black/w
|
|
|
851
851
|
|
|
852
852
|
| Animation | Class | Duration | Type | Description |
|
|
853
853
|
| --------------- | ---------------------------------- | ---------------------------- | ------- | ------------------------------------------------------------------------- |
|
|
854
|
-
| Scanline scroll | `.scanline` (::after) | 8s linear infinite | Ambient | Horizontal lines scroll down — signature 7K texture |
|
|
855
|
-
| Scanline fast | `.scanline-fast` (::after) | 3s linear infinite | Ambient | Faster variant for high-energy sections |
|
|
854
|
+
| Scanline scroll | `.bg-scanline` (::after) | 8s linear infinite | Ambient | Horizontal lines scroll down — signature 7K texture |
|
|
855
|
+
| Scanline fast | `.bg-scanline-fast` (::after) | 3s linear infinite | Ambient | Faster variant for high-energy sections |
|
|
856
856
|
| Basic glitch | `.glitch` | 0.3s, 3 iterations | Trigger | Translate jitter on 5 random frames |
|
|
857
857
|
| Complex glitch | `.glitch-complex` | 0.8s, 2 iterations | Trigger | Multi-axis + skew + clip-path splits |
|
|
858
858
|
| Glitch accent | `.glitch-accent` | 0.4s, 2 iterations | Trigger | Glitch with magenta glow trail |
|
|
@@ -860,11 +860,11 @@ These classes add thin color to any 1-bit component without breaking the black/w
|
|
|
860
860
|
| Binary blink | `.blink` / `.blink-fast` | 1s / 0.4s step-end | Ambient | Sharp on/off toggle |
|
|
861
861
|
| Typewriter | `.typewriter` | 1.5s (30 steps) | Trigger | Text reveal from left |
|
|
862
862
|
| Neon pulse | `.neon-pulse` / `.neon-pulse-cyan` | 2s ease-in-out | Ambient | Accent glow oscillation |
|
|
863
|
-
| Noise shift | `.noise-animated` | 0.5s, steps(5) | Ambient | SVG noise translates in discrete positions |
|
|
863
|
+
| Noise shift | `.bg-noise-animated` | 0.5s, steps(5) | Ambient | SVG noise translates in discrete positions |
|
|
864
864
|
| Scan reveal | `.scan-reveal` | 2s, 1 iteration | Trigger | White bar sweeps down |
|
|
865
|
-
| Pixel fade-in | `.
|
|
865
|
+
| Pixel fade-in | `.step-fade-in` | 0.6s, steps(8) | Trigger | Left-to-right reveal in stepped frames |
|
|
866
866
|
| Invert flash | `.invert-flash` | 0.15s, 2 iterations | Trigger | Full filter inversion burst |
|
|
867
|
-
| Pixel dots | `.
|
|
867
|
+
| Pixel dots | `.step-dots` / `.step-dots-fast` | 0.3s, steps(4), 2 iterations | Trigger | Small black squares scatter at random positions — stepped corruption effect |
|
|
868
868
|
| Progress scan | `.progress-indeterminate` | 1.5s | Loading | Bar sweeps left-to-right |
|
|
869
869
|
| Skeleton pulse | `.skeleton` | 1.2s ease-in-out | Loading | Opacity pulse |
|
|
870
870
|
| Slide-up reveal | `.slide-up-reveal` | 0.5s ease-out | Trigger | Content rises with clip-path |
|
|
@@ -891,7 +891,7 @@ These classes add thin color to any 1-bit component without breaking the black/w
|
|
|
891
891
|
|
|
892
892
|
1. **One ambient + one trigger.** At most one ambient animation (scanline, noise, flicker, shimmer, iso-grid-scroll) runs continuously. Triggered animations (glitch, invert-flash, scan-reveal, iso-assemble, iso-perspective-dolly) fire on interaction.
|
|
893
893
|
2. **Glitch is a burst, not a loop.** Basic glitch runs exactly 3 iterations (0.9s total) on the class utility. Pixel-dots runs 2 iterations (0.6s) for a quick corruption scatter. Never loop glitch infinitely.
|
|
894
|
-
3. **Scanline is the default ambient.** Every hero/full-bleed section should evaluate whether `.scanline` adds atmosphere. UI content sections (dashboard, settings) must not use ambient animation.
|
|
894
|
+
3. **Scanline is the default ambient.** Every hero/full-bleed section should evaluate whether `.bg-scanline` adds atmosphere. UI content sections (dashboard, settings) must not use ambient animation.
|
|
895
895
|
4. **Cascade: reduced-motion wins.** All animations collapse to 0.01ms at `prefers-reduced-motion: reduce`. No exceptions.
|
|
896
896
|
5. **Step timing for pixel-perfect animation.** Keyframes that simulate digital/retro effects use `steps()` timing instead of `ease`. This preserves sharp on/off quality.
|
|
897
897
|
6. **Overlay animations must have `pointer-events: none`.** Scanline, vignette, noise, and scan-reveal use `::before`/`::after` pseudo-elements.
|
|
@@ -900,11 +900,11 @@ These classes add thin color to any 1-bit component without breaking the black/w
|
|
|
900
900
|
|
|
901
901
|
| Surface | Ambient animation | Trigger animation |
|
|
902
902
|
| -------------------------- | ------------------------- | ------------------------------ |
|
|
903
|
-
| Landing / marketing hero | `.scanline` (8s) | `.scan-reveal` on load |
|
|
903
|
+
| Landing / marketing hero | `.bg-scanline` (8s) | `.scan-reveal` on load |
|
|
904
904
|
| Dashboard / app shell | None | `.glitch` on filter change |
|
|
905
905
|
| Loading state | `.skeleton` or `.shimmer` | None |
|
|
906
906
|
| Error state | None | `.glitch-complex` on container |
|
|
907
|
-
| 1-bit splash / manga panel | `.scanline-fast` (3s) | `.invert-flash` on page enter |
|
|
907
|
+
| 1-bit splash / manga panel | `.bg-scanline-fast` (3s) | `.invert-flash` on page enter |
|
|
908
908
|
| Toast / notification | None | `.slide-up-reveal` on mount |
|
|
909
909
|
| Button (accent) | None | Color transition on hover |
|
|
910
910
|
| Accent text | `.accent-flicker` | None |
|
|
@@ -1160,7 +1160,7 @@ import { IsometricBackground } from '7k-design-system/react';
|
|
|
1160
1160
|
</IsometricBackground>
|
|
1161
1161
|
```
|
|
1162
1162
|
|
|
1163
|
-
**CSS classes applied:** `.
|
|
1163
|
+
**CSS classes applied:** `.iso-grid`, `.iso-grid-animated`
|
|
1164
1164
|
|
|
1165
1165
|
### ThemeToggle
|
|
1166
1166
|
|
|
@@ -1269,7 +1269,7 @@ The CSS is split into 10 source files under `src/css/`, compiled into `dist/7k-d
|
|
|
1269
1269
|
| `isometric.css` | ~12.5KB | 11 isometric patterns: grid, cubes, pyramid, hex, pipes, terrain + animation variants |
|
|
1270
1270
|
| `components.css` | ~36KB | 40+ component classes: buttons, forms, nav, data display, overlays, feedback, media, misc |
|
|
1271
1271
|
| `modifiers.css` | ~2.2KB | Accent layer modifiers: border-top, underline, dot, bar, glow, corner |
|
|
1272
|
-
| `animations.css` | ~15.8KB | 20+ keyframe animations: glitch, flicker, blink, typewriter, neon-pulse, scan-reveal,
|
|
1272
|
+
| `animations.css` | ~15.8KB | 20+ keyframe animations: glitch, flicker, blink, typewriter, neon-pulse, scan-reveal, step-fade, iso-float |
|
|
1273
1273
|
| `accessibility.css` | ~0.6KB | `prefers-reduced-motion` collapse, `:focus-visible` rings, `prefers-contrast` support, screen-reader utilities |
|
|
1274
1274
|
|
|
1275
1275
|
### PostCSS Pipeline
|
package/README.md
CHANGED
|
@@ -31,8 +31,8 @@ The system provides these core capabilities:
|
|
|
31
31
|
- **Texture categories**: scanline, halftone, dot matrix, stripes, crosshatch, checkerboard, noise, vignette, isometric, surfaces & callouts
|
|
32
32
|
- **40+ components**: sharp geometry, high-contrast borders, invert-on-hover, thin accent modifiers
|
|
33
33
|
- **Textured component variants**: halftone, scanline, noise, dots, crosshatch on cards, panels, modals, drawers, toasts, buttons
|
|
34
|
-
- **20+ animations**: ambient (scanline scroll, CRT flicker, neon pulse) and trigger (glitch,
|
|
35
|
-
- **Isometric geometry animations**: combined animated background classes (`.
|
|
34
|
+
- **20+ animations**: ambient (scanline scroll, CRT flicker, neon pulse) and trigger (glitch, step-dots, invert-flash)
|
|
35
|
+
- **Isometric geometry animations**: combined animated background classes (`.iso-grid-animated`, etc.)
|
|
36
36
|
- **Engineering-blueprint aesthetic**: mono labels as "connective tissue" throughout all surfaces
|
|
37
37
|
- **React UI kit**: 20+ TypeScript components wrapping the CSS system
|
|
38
38
|
|
|
@@ -171,7 +171,7 @@ Requires self-hosting the `fonts/` directory for Geist Pixel variants.
|
|
|
171
171
|
font-family: var(--font-sans);
|
|
172
172
|
}
|
|
173
173
|
```
|
|
174
|
-
4. **Apply textures** — Add classes like `.scanline`, `.halftone-md`, `.noise` to sections
|
|
174
|
+
4. **Apply textures** — Add classes like `.bg-scanline`, `.bg-halftone-md`, `.bg-noise` to sections
|
|
175
175
|
5. **Use components** — Apply classes like `.btn-primary`, `.badge-success`, `.input`
|
|
176
176
|
|
|
177
177
|
## File Structure Notes
|