Prechádzať zdrojové kódy

MAESTRO: frontend design foundation — Basalt/Dune palette, Bricolage + Plex Mono type roles

Retheme the web frontend to the shared 'table at night' design language
(token source: dune-weaver-mobile/src/theme/index.ts):
- index.css @theme/.dark rewritten to day/night sand palettes; new
  live/success/card-elevated/input-background tokens
- body -> system face; Bricolage Grotesque (display) + IBM Plex Mono
  (telemetry) self-hosted via fontsource; Jakarta/Noto imports dropped
- PWA theme-color -> basalt #171310

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tuanchris 5 dní pred
rodič
commit
ae8b32f614
100 zmenil súbory, kde vykonal 91 pridanie a 52 odobranie
  1. 1 1
      frontend/index.html
  2. 20 0
      frontend/package-lock.json
  3. 2 0
      frontend/package.json
  4. 62 42
      frontend/src/index.css
  5. 6 9
      frontend/src/main.tsx
  6. BIN
      static/dist/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.woff
  7. BIN
      static/dist/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2
  8. BIN
      static/dist/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff
  9. BIN
      static/dist/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2
  10. BIN
      static/dist/assets/bricolage-grotesque-latin-ext-600-normal-CN5JKkBm.woff2
  11. BIN
      static/dist/assets/bricolage-grotesque-latin-ext-600-normal-DF26P3Q7.woff
  12. BIN
      static/dist/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.woff
  13. BIN
      static/dist/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2
  14. BIN
      static/dist/assets/bricolage-grotesque-vietnamese-600-normal-BppAn7jL.woff
  15. BIN
      static/dist/assets/bricolage-grotesque-vietnamese-600-normal-Ipewt4hn.woff2
  16. BIN
      static/dist/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2
  17. BIN
      static/dist/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.woff
  18. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2
  19. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff
  20. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff
  21. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2
  22. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff
  23. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2
  24. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff
  25. BIN
      static/dist/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2
  26. BIN
      static/dist/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff
  27. BIN
      static/dist/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2
  28. BIN
      static/dist/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff
  29. BIN
      static/dist/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2
  30. BIN
      static/dist/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2
  31. BIN
      static/dist/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff
  32. BIN
      static/dist/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2
  33. BIN
      static/dist/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff
  34. BIN
      static/dist/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2
  35. BIN
      static/dist/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff
  36. BIN
      static/dist/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff
  37. BIN
      static/dist/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2
  38. 0 0
      static/dist/assets/index-Comyu5NI.js
  39. 0 0
      static/dist/assets/index-DJyhS4Mn.css
  40. 0 0
      static/dist/assets/index-DpUgdjlV.js
  41. 0 0
      static/dist/assets/index-RF2BgLvM.css
  42. BIN
      static/dist/assets/noto-sans-cyrillic-400-normal-BDYvNhAR.woff
  43. BIN
      static/dist/assets/noto-sans-cyrillic-400-normal-CHP_ranX.woff2
  44. BIN
      static/dist/assets/noto-sans-cyrillic-500-normal-9zZ_jNuA.woff2
  45. BIN
      static/dist/assets/noto-sans-cyrillic-500-normal-BxM0HQjg.woff
  46. BIN
      static/dist/assets/noto-sans-cyrillic-600-normal-BRIw9PIU.woff
  47. BIN
      static/dist/assets/noto-sans-cyrillic-600-normal-KpAl9xZA.woff2
  48. BIN
      static/dist/assets/noto-sans-cyrillic-700-normal-D8UNalU-.woff
  49. BIN
      static/dist/assets/noto-sans-cyrillic-700-normal-DYZmzPmX.woff2
  50. BIN
      static/dist/assets/noto-sans-cyrillic-ext-400-normal-BjDhGU6t.woff2
  51. BIN
      static/dist/assets/noto-sans-cyrillic-ext-400-normal-d9FrwbiD.woff
  52. BIN
      static/dist/assets/noto-sans-cyrillic-ext-500-normal-Bw4G4pNe.woff
  53. BIN
      static/dist/assets/noto-sans-cyrillic-ext-500-normal-CuwgPeWW.woff2
  54. BIN
      static/dist/assets/noto-sans-cyrillic-ext-600-normal-Cwz1867h.woff
  55. BIN
      static/dist/assets/noto-sans-cyrillic-ext-600-normal-DlWr7wnj.woff2
  56. BIN
      static/dist/assets/noto-sans-cyrillic-ext-700-normal-D83T7awq.woff
  57. BIN
      static/dist/assets/noto-sans-cyrillic-ext-700-normal-OK-fZO_i.woff2
  58. BIN
      static/dist/assets/noto-sans-devanagari-400-normal-C3FccbrF.woff2
  59. BIN
      static/dist/assets/noto-sans-devanagari-400-normal-g9fsM2jL.woff
  60. BIN
      static/dist/assets/noto-sans-devanagari-500-normal-B62tDw8r.woff
  61. BIN
      static/dist/assets/noto-sans-devanagari-500-normal-VG35fhMU.woff2
  62. BIN
      static/dist/assets/noto-sans-devanagari-600-normal-Bly84zfI.woff
  63. BIN
      static/dist/assets/noto-sans-devanagari-600-normal-Ewgvvq1j.woff2
  64. BIN
      static/dist/assets/noto-sans-devanagari-700-normal-CT12sGlc.woff
  65. BIN
      static/dist/assets/noto-sans-devanagari-700-normal-DVs0dmkg.woff2
  66. BIN
      static/dist/assets/noto-sans-greek-400-normal-Be2BcUUc.woff
  67. BIN
      static/dist/assets/noto-sans-greek-400-normal-DCESwnT1.woff2
  68. BIN
      static/dist/assets/noto-sans-greek-500-normal-BAAA_uK7.woff
  69. BIN
      static/dist/assets/noto-sans-greek-500-normal-D_0l3T9g.woff2
  70. BIN
      static/dist/assets/noto-sans-greek-600-normal-C0bz_iEd.woff
  71. BIN
      static/dist/assets/noto-sans-greek-600-normal-CT9U7UAD.woff2
  72. BIN
      static/dist/assets/noto-sans-greek-700-normal-DDNJsN3F.woff
  73. BIN
      static/dist/assets/noto-sans-greek-700-normal-x3kNWF-0.woff2
  74. BIN
      static/dist/assets/noto-sans-greek-ext-400-normal-L11LEhi4.woff
  75. BIN
      static/dist/assets/noto-sans-greek-ext-400-normal-i2oSBwXz.woff2
  76. BIN
      static/dist/assets/noto-sans-greek-ext-500-normal-CbZNESfr.woff
  77. BIN
      static/dist/assets/noto-sans-greek-ext-500-normal-D6bOGD5V.woff2
  78. BIN
      static/dist/assets/noto-sans-greek-ext-600-normal-B4z4a2vi.woff2
  79. BIN
      static/dist/assets/noto-sans-greek-ext-600-normal-BjvVOqxV.woff
  80. BIN
      static/dist/assets/noto-sans-greek-ext-700-normal-BOmIwFkq.woff
  81. BIN
      static/dist/assets/noto-sans-greek-ext-700-normal-Dq1WA5-1.woff2
  82. BIN
      static/dist/assets/noto-sans-latin-400-normal-BTkUljjl.woff2
  83. BIN
      static/dist/assets/noto-sans-latin-400-normal-DPpKfCgK.woff
  84. BIN
      static/dist/assets/noto-sans-latin-500-normal-CDPngY5C.woff
  85. BIN
      static/dist/assets/noto-sans-latin-500-normal-DCA2Z9Cj.woff2
  86. BIN
      static/dist/assets/noto-sans-latin-600-normal-DVJMj_t0.woff
  87. BIN
      static/dist/assets/noto-sans-latin-600-normal-Dkgu5AE5.woff2
  88. BIN
      static/dist/assets/noto-sans-latin-700-normal-CrvTEWhy.woff2
  89. BIN
      static/dist/assets/noto-sans-latin-700-normal-ZyrKABVF.woff
  90. BIN
      static/dist/assets/noto-sans-latin-ext-400-normal-CNh9dRW_.woff
  91. BIN
      static/dist/assets/noto-sans-latin-ext-400-normal-CVf-LbaS.woff2
  92. BIN
      static/dist/assets/noto-sans-latin-ext-500-normal-Bn9_h39k.woff
  93. BIN
      static/dist/assets/noto-sans-latin-ext-500-normal-D88cFz81.woff2
  94. BIN
      static/dist/assets/noto-sans-latin-ext-600-normal-B3lLaxXr.woff
  95. BIN
      static/dist/assets/noto-sans-latin-ext-600-normal-Has_8ph9.woff2
  96. BIN
      static/dist/assets/noto-sans-latin-ext-700-normal-BypTtJma.woff2
  97. BIN
      static/dist/assets/noto-sans-latin-ext-700-normal-CgsG9aVh.woff
  98. BIN
      static/dist/assets/noto-sans-vietnamese-400-normal-C3Al4sv4.woff
  99. BIN
      static/dist/assets/noto-sans-vietnamese-400-normal-D2wP-Vm-.woff2
  100. BIN
      static/dist/assets/noto-sans-vietnamese-500-normal-BBHKifio.woff

+ 1 - 1
frontend/index.html

@@ -6,7 +6,7 @@
     <meta name="description" content="Control your kinetic sand table" />
 
     <!-- PWA Meta Tags -->
-    <meta name="theme-color" content="#0a0a0a" />
+    <meta name="theme-color" content="#171310" />
     <meta name="apple-mobile-web-app-capable" content="yes" />
     <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
     <meta name="apple-mobile-web-app-title" content="Dune Weaver" />

+ 20 - 0
frontend/package-lock.json

@@ -9,6 +9,8 @@
       "version": "0.0.0",
       "license": "GPL-3.0-or-later",
       "dependencies": {
+        "@fontsource/bricolage-grotesque": "^5.2.10",
+        "@fontsource/ibm-plex-mono": "^5.2.7",
         "@fontsource/noto-sans": "^5.2.10",
         "@fontsource/plus-jakarta-sans": "^5.2.8",
         "@radix-ui/react-accordion": "^1.2.12",
@@ -2774,6 +2776,24 @@
       "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
       "license": "MIT"
     },
+    "node_modules/@fontsource/bricolage-grotesque": {
+      "version": "5.2.10",
+      "resolved": "https://registry.npmjs.org/@fontsource/bricolage-grotesque/-/bricolage-grotesque-5.2.10.tgz",
+      "integrity": "sha512-V2xS+1P7C8IrSypXLUx/bLtX/LsTlYtV2k2CsU+S/0t8qepZ2hvKSlyJIx7Ub/iY8Bbnj+IjAuUF9nvFz+BbIg==",
+      "license": "OFL-1.1",
+      "funding": {
+        "url": "https://github.com/sponsors/ayuhito"
+      }
+    },
+    "node_modules/@fontsource/ibm-plex-mono": {
+      "version": "5.2.7",
+      "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.2.7.tgz",
+      "integrity": "sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w==",
+      "license": "OFL-1.1",
+      "funding": {
+        "url": "https://github.com/sponsors/ayuhito"
+      }
+    },
     "node_modules/@fontsource/noto-sans": {
       "version": "5.2.10",
       "resolved": "https://registry.npmjs.org/@fontsource/noto-sans/-/noto-sans-5.2.10.tgz",

+ 2 - 0
frontend/package.json

@@ -17,6 +17,8 @@
     "test:e2e:ui": "playwright test --ui"
   },
   "dependencies": {
+    "@fontsource/bricolage-grotesque": "^5.2.10",
+    "@fontsource/ibm-plex-mono": "^5.2.7",
     "@fontsource/noto-sans": "^5.2.10",
     "@fontsource/plus-jakarta-sans": "^5.2.8",
     "@radix-ui/react-accordion": "^1.2.12",

+ 62 - 42
frontend/src/index.css

@@ -2,74 +2,94 @@
 
 /* Fonts imported in main.tsx (self-hosted, no CDN dependency) */
 
-/* Theme configuration using CSS variables */
+/* Theme configuration using CSS variables.
+ * "Table at night" palette shared with dune-weaver-mobile —
+ * token source: dune-weaver-mobile/src/theme/index.ts.
+ * Light = day (fine-sand paper), dark = night (basalt ground). */
 @theme {
-  --color-border: hsl(214.3 31.8% 91.4%);
-  --color-input: hsl(214.3 31.8% 91.4%);
-  --color-ring: hsl(207 90% 50%);
-  --color-background: hsl(220 14% 98%);
-  --color-foreground: hsl(222.2 84% 4.9%);
+  --color-border: #E2D6C2;
+  --color-input: #E2D6C2;
+  --color-ring: #A87F45;
+  --color-background: #F5EFE6;
+  --color-foreground: #292219;
 
-  --color-primary: hsl(207 90% 50%);
-  --color-primary-foreground: hsl(210 40% 98%);
+  --color-primary: #A87F45;
+  --color-primary-foreground: #FFF9EE;
 
-  --color-secondary: hsl(210 40% 96.1%);
-  --color-secondary-foreground: hsl(222.2 47.4% 11.2%);
+  --color-secondary: #EDE4D4;
+  --color-secondary-foreground: #292219;
 
-  --color-muted: hsl(220 14% 92%);
-  --color-muted-foreground: hsl(215.4 16.3% 46.9%);
+  --color-muted: #EDE4D4;
+  --color-muted-foreground: #8A7A63;
 
-  --color-accent: hsl(210 40% 96.1%);
-  --color-accent-foreground: hsl(222.2 47.4% 11.2%);
+  --color-accent: #EDE4D4;
+  --color-accent-foreground: #292219;
 
-  --color-destructive: hsl(0 84.2% 60.2%);
-  --color-destructive-foreground: hsl(210 40% 98%);
+  --color-destructive: #BC5843;
+  --color-destructive-foreground: #FFF9EE;
 
-  --color-card: hsl(0 0% 100%);
-  --color-card-foreground: hsl(222.2 84% 4.9%);
+  --color-card: #FDFAF4;
+  --color-card-foreground: #292219;
+  --color-card-elevated: #EDE4D4;
 
-  --color-popover: hsl(0 0% 100%);
-  --color-popover-foreground: hsl(222.2 84% 4.9%);
+  --color-popover: #FDFAF4;
+  --color-popover-foreground: #292219;
+
+  --color-input-background: #EDE4D4;
+  --color-success: #5E9950;
+  /* Things actually happening on the table right now (progress fills, the
+   * live ball, connect pulse). Distinct from primary so "go do this" (sand)
+   * never reads the same as "this is running" (patina). */
+  --color-live: #35836F;
 
   --radius: 0.5rem;
   --radius-lg: 0.75rem;
   --radius-md: calc(var(--radius) - 2px);
   --radius-sm: calc(var(--radius) - 4px);
 
-  --font-family-sans: 'Plus Jakarta Sans', 'Noto Sans', sans-serif;
+  /* Type roles (mirrors the app): body stays the system face so controls
+   * keep a native feel; display for titles/pattern names/the state word;
+   * mono for telemetry — elapsed/%, feed rate, θ/ρ, IPs, versions, logs. */
+  --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+  --font-display: 'Bricolage Grotesque', -apple-system, BlinkMacSystemFont, sans-serif;
+  --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
+  --font-family-sans: var(--font-sans);
 }
 
-/* Dark mode */
+/* Dark mode — night: basalt ground, walnut cards, lit-sand ink, dune accent */
 .dark {
   color-scheme: dark;
-  --color-border: hsl(0 0% 32%);
-  --color-input: hsl(0 0% 32%);
-  --color-ring: hsl(207 90% 50%);
-  --color-background: hsl(0 0% 10%);
-  --color-foreground: hsl(210 40% 98%);
+  --color-border: #352D23;
+  --color-input: #352D23;
+  --color-ring: #D9B98A;
+  --color-background: #171310;
+  --color-foreground: #F2EAD9;
 
-  --color-primary: hsl(207 90% 50%);
-  --color-primary-foreground: hsl(210 40% 98%);
+  --color-primary: #D9B98A;
+  --color-primary-foreground: #221A0F;
 
-  --color-secondary: hsl(0 0% 25%);
-  --color-secondary-foreground: hsl(210 40% 98%);
+  --color-secondary: #2B241D;
+  --color-secondary-foreground: #F2EAD9;
 
-  --color-muted: hsl(0 0% 25%);
-  --color-muted-foreground: hsl(215 20.2% 65.1%);
+  --color-muted: #2B241D;
+  --color-muted-foreground: #A08F77;
 
-  --color-accent: hsl(0 0% 25%);
-  --color-accent-foreground: hsl(210 40% 98%);
+  --color-accent: #2B241D;
+  --color-accent-foreground: #F2EAD9;
 
-  --color-destructive: hsl(0 62.8% 50.6%);
-  --color-destructive-foreground: hsl(210 40% 98%);
+  --color-destructive: #D97A66;
+  --color-destructive-foreground: #221A0F;
 
-  --color-card: hsl(0 0% 18%);
-  --color-card-foreground: hsl(210 40% 98%);
+  --color-card: #211C17;
+  --color-card-foreground: #F2EAD9;
+  --color-card-elevated: #2B241D;
 
-  --color-input-background: hsl(0 0% 28%);
+  --color-input-background: #2B241D;
+  --color-success: #8FBF7F;
+  --color-live: #7BC4B0;
 
-  --color-popover: hsl(0 0% 15%);
-  --color-popover-foreground: hsl(210 40% 98%);
+  --color-popover: #211C17;
+  --color-popover-foreground: #F2EAD9;
 }
 
 /* Base styles */

+ 6 - 9
frontend/src/main.tsx

@@ -3,15 +3,12 @@ import { createRoot } from 'react-dom/client'
 import { BrowserRouter } from 'react-router-dom'
 import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
 
-// Self-hosted fonts (no CDN — works offline / hotspot mode)
-import '@fontsource/plus-jakarta-sans/400.css'
-import '@fontsource/plus-jakarta-sans/500.css'
-import '@fontsource/plus-jakarta-sans/600.css'
-import '@fontsource/plus-jakarta-sans/700.css'
-import '@fontsource/noto-sans/400.css'
-import '@fontsource/noto-sans/500.css'
-import '@fontsource/noto-sans/600.css'
-import '@fontsource/noto-sans/700.css'
+// Self-hosted fonts (no CDN — works offline / hotspot mode).
+// Body text stays the system face; these cover the display + telemetry roles.
+import '@fontsource/bricolage-grotesque/600.css'
+import '@fontsource/bricolage-grotesque/700.css'
+import '@fontsource/ibm-plex-mono/400.css'
+import '@fontsource/ibm-plex-mono/500.css'
 import 'material-icons/iconfont/filled.css'
 import 'material-icons/iconfont/outlined.css'
 

BIN
static/dist/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.woff


BIN
static/dist/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2


BIN
static/dist/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff


BIN
static/dist/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2


BIN
static/dist/assets/bricolage-grotesque-latin-ext-600-normal-CN5JKkBm.woff2


BIN
static/dist/assets/bricolage-grotesque-latin-ext-600-normal-DF26P3Q7.woff


BIN
static/dist/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.woff


BIN
static/dist/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2


BIN
static/dist/assets/bricolage-grotesque-vietnamese-600-normal-BppAn7jL.woff


BIN
static/dist/assets/bricolage-grotesque-vietnamese-600-normal-Ipewt4hn.woff2


BIN
static/dist/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2


BIN
static/dist/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.woff


BIN
static/dist/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2


BIN
static/dist/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff


BIN
static/dist/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff


BIN
static/dist/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2


BIN
static/dist/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff


BIN
static/dist/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2


BIN
static/dist/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff


BIN
static/dist/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2


BIN
static/dist/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff


BIN
static/dist/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2


BIN
static/dist/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff


BIN
static/dist/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2


BIN
static/dist/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2


BIN
static/dist/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff


BIN
static/dist/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2


BIN
static/dist/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff


BIN
static/dist/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2


BIN
static/dist/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff


BIN
static/dist/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff


BIN
static/dist/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
static/dist/assets/index-Comyu5NI.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
static/dist/assets/index-DJyhS4Mn.css


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
static/dist/assets/index-DpUgdjlV.js


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
static/dist/assets/index-RF2BgLvM.css


BIN
static/dist/assets/noto-sans-cyrillic-400-normal-BDYvNhAR.woff


BIN
static/dist/assets/noto-sans-cyrillic-400-normal-CHP_ranX.woff2


BIN
static/dist/assets/noto-sans-cyrillic-500-normal-9zZ_jNuA.woff2


BIN
static/dist/assets/noto-sans-cyrillic-500-normal-BxM0HQjg.woff


BIN
static/dist/assets/noto-sans-cyrillic-600-normal-BRIw9PIU.woff


BIN
static/dist/assets/noto-sans-cyrillic-600-normal-KpAl9xZA.woff2


BIN
static/dist/assets/noto-sans-cyrillic-700-normal-D8UNalU-.woff


BIN
static/dist/assets/noto-sans-cyrillic-700-normal-DYZmzPmX.woff2


BIN
static/dist/assets/noto-sans-cyrillic-ext-400-normal-BjDhGU6t.woff2


BIN
static/dist/assets/noto-sans-cyrillic-ext-400-normal-d9FrwbiD.woff


BIN
static/dist/assets/noto-sans-cyrillic-ext-500-normal-Bw4G4pNe.woff


BIN
static/dist/assets/noto-sans-cyrillic-ext-500-normal-CuwgPeWW.woff2


BIN
static/dist/assets/noto-sans-cyrillic-ext-600-normal-Cwz1867h.woff


BIN
static/dist/assets/noto-sans-cyrillic-ext-600-normal-DlWr7wnj.woff2


BIN
static/dist/assets/noto-sans-cyrillic-ext-700-normal-D83T7awq.woff


BIN
static/dist/assets/noto-sans-cyrillic-ext-700-normal-OK-fZO_i.woff2


BIN
static/dist/assets/noto-sans-devanagari-400-normal-C3FccbrF.woff2


BIN
static/dist/assets/noto-sans-devanagari-400-normal-g9fsM2jL.woff


BIN
static/dist/assets/noto-sans-devanagari-500-normal-B62tDw8r.woff


BIN
static/dist/assets/noto-sans-devanagari-500-normal-VG35fhMU.woff2


BIN
static/dist/assets/noto-sans-devanagari-600-normal-Bly84zfI.woff


BIN
static/dist/assets/noto-sans-devanagari-600-normal-Ewgvvq1j.woff2


BIN
static/dist/assets/noto-sans-devanagari-700-normal-CT12sGlc.woff


BIN
static/dist/assets/noto-sans-devanagari-700-normal-DVs0dmkg.woff2


BIN
static/dist/assets/noto-sans-greek-400-normal-Be2BcUUc.woff


BIN
static/dist/assets/noto-sans-greek-400-normal-DCESwnT1.woff2


BIN
static/dist/assets/noto-sans-greek-500-normal-BAAA_uK7.woff


BIN
static/dist/assets/noto-sans-greek-500-normal-D_0l3T9g.woff2


BIN
static/dist/assets/noto-sans-greek-600-normal-C0bz_iEd.woff


BIN
static/dist/assets/noto-sans-greek-600-normal-CT9U7UAD.woff2


BIN
static/dist/assets/noto-sans-greek-700-normal-DDNJsN3F.woff


BIN
static/dist/assets/noto-sans-greek-700-normal-x3kNWF-0.woff2


BIN
static/dist/assets/noto-sans-greek-ext-400-normal-L11LEhi4.woff


BIN
static/dist/assets/noto-sans-greek-ext-400-normal-i2oSBwXz.woff2


BIN
static/dist/assets/noto-sans-greek-ext-500-normal-CbZNESfr.woff


BIN
static/dist/assets/noto-sans-greek-ext-500-normal-D6bOGD5V.woff2


BIN
static/dist/assets/noto-sans-greek-ext-600-normal-B4z4a2vi.woff2


BIN
static/dist/assets/noto-sans-greek-ext-600-normal-BjvVOqxV.woff


BIN
static/dist/assets/noto-sans-greek-ext-700-normal-BOmIwFkq.woff


BIN
static/dist/assets/noto-sans-greek-ext-700-normal-Dq1WA5-1.woff2


BIN
static/dist/assets/noto-sans-latin-400-normal-BTkUljjl.woff2


BIN
static/dist/assets/noto-sans-latin-400-normal-DPpKfCgK.woff


BIN
static/dist/assets/noto-sans-latin-500-normal-CDPngY5C.woff


BIN
static/dist/assets/noto-sans-latin-500-normal-DCA2Z9Cj.woff2


BIN
static/dist/assets/noto-sans-latin-600-normal-DVJMj_t0.woff


BIN
static/dist/assets/noto-sans-latin-600-normal-Dkgu5AE5.woff2


BIN
static/dist/assets/noto-sans-latin-700-normal-CrvTEWhy.woff2


BIN
static/dist/assets/noto-sans-latin-700-normal-ZyrKABVF.woff


BIN
static/dist/assets/noto-sans-latin-ext-400-normal-CNh9dRW_.woff


BIN
static/dist/assets/noto-sans-latin-ext-400-normal-CVf-LbaS.woff2


BIN
static/dist/assets/noto-sans-latin-ext-500-normal-Bn9_h39k.woff


BIN
static/dist/assets/noto-sans-latin-ext-500-normal-D88cFz81.woff2


BIN
static/dist/assets/noto-sans-latin-ext-600-normal-B3lLaxXr.woff


BIN
static/dist/assets/noto-sans-latin-ext-600-normal-Has_8ph9.woff2


BIN
static/dist/assets/noto-sans-latin-ext-700-normal-BypTtJma.woff2


BIN
static/dist/assets/noto-sans-latin-ext-700-normal-CgsG9aVh.woff


BIN
static/dist/assets/noto-sans-vietnamese-400-normal-C3Al4sv4.woff


BIN
static/dist/assets/noto-sans-vietnamese-400-normal-D2wP-Vm-.woff2


BIN
static/dist/assets/noto-sans-vietnamese-500-normal-BBHKifio.woff


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov