@24vlh/vds 0.1.1 → 0.1.2

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/dist/identity.css CHANGED
@@ -1 +1,266 @@
1
- .vds-identity,[data-vds-identity]{--logo-stroke-primary:2.75;--logo-clearspace:0.5;--logo-min-horizontal:24px;--logo-min-mark:16px;--logo-primary-letter-spacing:0.18em;--logo-secondary-letter-spacing:0.30em;--logo-size-xs:2.5rem;--logo-size-sm:3rem;--logo-size-md:3.75rem;--logo-size-lg:4.5rem;--logo-size-xl:5.5rem;--logo-size-xxl:6.5rem;--logo-doc-height:2.25rem}.logo{color:currentColor;color:var(--color-logo-ink,currentColor);display:inline-block;font-size:1rem;height:var(--logo-size-sm);line-height:1;overflow:visible;padding:calc(var(--logo-clearspace)*1em);vertical-align:middle;width:auto}.logo-wordmark{fill:currentColor;fill:var(--color-logo-ink,currentColor)}.logo-chevron,.logo-frame,.logo-rail{fill:none!important;stroke-width:var(--logo-stroke-primary);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.logo-frame,.logo-rail{stroke:currentColor;stroke:var(--color-logo-ink,currentColor)}.logo-chevron{stroke:currentColor;stroke:var(--color-logo-accent,currentColor)}.logo-text-primary{font-size:var(--text-sm);letter-spacing:var(--logo-primary-letter-spacing)}.logo-text-secondary{font-size:var(--text-xxxs);letter-spacing:var(--logo-secondary-letter-spacing)}.logo-text-primary,.logo-text-secondary{fill:currentColor;fill:var(--color-logo-ink,currentColor);font-family:var(--font-family-sans),sans-serif}.logo--mono .logo-chevron,.logo--mono .logo-frame,.logo--mono .logo-rail{stroke:var(--color-logo-mono)!important}.logo--mono .logo-text-primary,.logo--mono .logo-text-secondary,.logo--mono .logo-wordmark{fill:var(--color-logo-ink)!important;stroke:none!important}.logo--footer{color:var(--color-logo-footer-ink)}.logo--footer .logo-frame,.logo--footer .logo-rail{stroke:var(--color-logo-footer-ink)}.logo--footer .logo-chevron{stroke:var(--color-logo-footer-accent)}.logo--footer .logo-text-primary,.logo--footer .logo-text-secondary,.logo--footer .logo-wordmark{fill:var(--color-logo-footer-ink)}.logo--inverse .logo-frame,.logo--inverse .logo-rail{stroke:var(--color-logo-ink-inverse)!important}.logo--inverse .logo-chevron{stroke:var(--color-logo-accent-inverse)!important}.logo--inverse .logo-text-primary,.logo--inverse .logo-text-secondary,.logo--inverse .logo-wordmark{fill:var(--color-logo-ink-inverse)!important;stroke:none!important}.logo--horizontal{min-height:var(--logo-min-horizontal)}.logo--mark-only{min-height:var(--logo-min-mark)}.logo--xs{height:var(--logo-size-xs)}.logo--sm{height:var(--logo-size-sm)}.logo--md{height:var(--logo-size-md)}.logo--lg{height:var(--logo-size-lg)}.logo--xl{height:var(--logo-size-xl)}.logo--xxl{height:var(--logo-size-xxl)}.logo--inline{align-items:center;display:inline-flex}.logo--block{align-items:center;display:flex}.logo--center{margin-left:auto;margin-right:auto}.logo--left{justify-content:flex-start}.logo--right{justify-content:flex-end}.logo--ink svg .logo-frame,.logo--ink svg .logo-rail{stroke:var(--color-logo-ink)}.logo--ink svg .logo-chevron{stroke:var(--color-logo-accent)}.logo--inverse svg .logo-frame,.logo--inverse svg .logo-rail{stroke:var(--color-logo-ink-inverse)}.logo--inverse svg .logo-chevron{stroke:var(--color-logo-accent-inverse)}.logo--pad-xs{padding:var(--space-2)}.logo--pad-sm{padding:var(--space-3)}.logo--pad-md{padding:var(--space-4)}.logo--pad-lg{padding:var(--space-6)}.logo--pad-xl{padding:var(--space-8)}
1
+ /************************************************************
2
+ * VLAH DESIGN SYSTEM (VDS) - Identity / Logo System
3
+ *
4
+ * Responsibilities:
5
+ * - Define the full SVG logo architecture (frame, rail, chevron, wordmark)
6
+ * - Provide identity-level tokens: stroke weights, clearspace, minimum sizes,
7
+ * letter-spacing, and size presets (XS–XXL)
8
+ * - Implement color modes: ink, accent, mono, footer, inverse
9
+ * - Support layout modes: horizontal, mark-only, inline/block alignment,
10
+ * centering, left/right justification
11
+ * - Ensure consistent visual behaviour for inline SVG logo components
12
+ *
13
+ * System Notes:
14
+ * - Themes must declare the full identity token set:
15
+ * --color-logo-ink, --color-logo-accent, --color-logo-mono,
16
+ * --color-logo-footer-ink, --color-logo-footer-accent,
17
+ * --color-logo-ink-inverse, --color-logo-accent-inverse
18
+ * - 100% token-driven: stroke, fill, sizes, spacing
19
+ * - Pure CSS; no JS behaviour or measurement logic
20
+ * - Works with inline SVG only; external <img> identity assets
21
+ * must use static variants and cannot inherit these rules
22
+ ************************************************************/
23
+
24
+ /* ---------------------------------------------------------
25
+ 1. ROOT IDENTITY TOKEN DEFINITIONS
26
+ --------------------------------------------------------- */
27
+
28
+ [data-vds-identity],
29
+ .vds-identity {
30
+ --logo-stroke-primary: 2.75;
31
+ --logo-clearspace: 0.5;
32
+ --logo-min-horizontal: 24px;
33
+ --logo-min-mark: 16px;
34
+ --logo-primary-letter-spacing: 0.18em;
35
+ --logo-secondary-letter-spacing: 0.30em;
36
+ --logo-size-xs: 2.5rem;
37
+ --logo-size-sm: 3rem;
38
+ --logo-size-md: 3.75rem;
39
+ --logo-size-lg: 4.5rem;
40
+ --logo-size-xl: 5.5rem;
41
+ --logo-size-xxl: 6.5rem;
42
+ --logo-doc-height: 2.25rem;
43
+ }
44
+
45
+ /* ---------------------------------------------------------
46
+ 2. BASE LOGO ARCHITECTURE
47
+ Targeting inline SVG: <svg class="logo ...>
48
+ --------------------------------------------------------- */
49
+
50
+ .logo {
51
+ display: inline-block;
52
+ line-height: 1;
53
+ vertical-align: middle;
54
+ font-size: 1rem;
55
+ padding: calc(var(--logo-clearspace) * 1em);
56
+ color: currentColor;
57
+ color: var(--color-logo-ink, currentColor);
58
+ height: var(--logo-size-sm);
59
+ width: auto;
60
+ overflow: visible;
61
+ }
62
+
63
+ .logo-wordmark {
64
+ fill: currentColor;
65
+ fill: var(--color-logo-ink, currentColor);
66
+ }
67
+
68
+ .logo-frame,
69
+ .logo-rail,
70
+ .logo-chevron {
71
+ fill: none !important;
72
+ }
73
+
74
+ .logo-frame,
75
+ .logo-rail,
76
+ .logo-chevron {
77
+ stroke-width: var(--logo-stroke-primary);
78
+ stroke-linecap: round;
79
+ stroke-linejoin: round;
80
+ vector-effect: non-scaling-stroke;
81
+ }
82
+
83
+ .logo-frame,
84
+ .logo-rail {
85
+ stroke: currentColor;
86
+ stroke: var(--color-logo-ink, currentColor);
87
+ }
88
+
89
+ .logo-chevron {
90
+ stroke: currentColor;
91
+ stroke: var(--color-logo-accent, currentColor);
92
+ }
93
+
94
+ .logo-text-primary {
95
+ font-size: var(--text-sm);
96
+ letter-spacing: var(--logo-primary-letter-spacing);
97
+ }
98
+
99
+ .logo-text-secondary {
100
+ font-size: var(--text-xxxs);
101
+ letter-spacing: var(--logo-secondary-letter-spacing);
102
+ }
103
+
104
+ .logo-text-primary,
105
+ .logo-text-secondary {
106
+ fill: currentColor;
107
+ fill: var(--color-logo-ink, currentColor);
108
+ font-family: var(--font-family-sans), sans-serif;
109
+ }
110
+
111
+ /* ---------------------------------------------------------
112
+ 3. VARIANTS
113
+ --------------------------------------------------------- */
114
+
115
+ .logo--mono .logo-frame,
116
+ .logo--mono .logo-rail,
117
+ .logo--mono .logo-chevron {
118
+ stroke: var(--color-logo-mono) !important;
119
+ }
120
+
121
+ .logo--mono .logo-wordmark,
122
+ .logo--mono .logo-text-primary,
123
+ .logo--mono .logo-text-secondary {
124
+ fill: var(--color-logo-ink) !important;
125
+ stroke: none !important;
126
+ }
127
+
128
+ .logo--footer {
129
+ color: var(--color-logo-footer-ink);
130
+ }
131
+
132
+ .logo--footer .logo-frame,
133
+ .logo--footer .logo-rail {
134
+ stroke: var(--color-logo-footer-ink);
135
+ }
136
+
137
+ .logo--footer .logo-chevron {
138
+ stroke: var(--color-logo-footer-accent);
139
+ }
140
+
141
+ .logo--footer .logo-wordmark,
142
+ .logo--footer .logo-text-primary,
143
+ .logo--footer .logo-text-secondary {
144
+ fill: var(--color-logo-footer-ink);
145
+ }
146
+
147
+ .logo--inverse .logo-frame,
148
+ .logo--inverse .logo-rail {
149
+ stroke: var(--color-logo-ink-inverse) !important;
150
+ }
151
+
152
+ .logo--inverse .logo-chevron {
153
+ stroke: var(--color-logo-accent-inverse) !important;
154
+ }
155
+
156
+ .logo--inverse .logo-wordmark,
157
+ .logo--inverse .logo-text-primary,
158
+ .logo--inverse .logo-text-secondary {
159
+ fill: var(--color-logo-ink-inverse) !important;
160
+ stroke: none !important;
161
+ }
162
+
163
+ /* ---------------------------------------------------------
164
+ 4. SIZING & LAYOUT
165
+ --------------------------------------------------------- */
166
+
167
+ .logo--horizontal {
168
+ min-height: var(--logo-min-horizontal);
169
+ }
170
+
171
+ .logo--mark-only {
172
+ min-height: var(--logo-min-mark);
173
+ }
174
+
175
+ .logo--xs {
176
+ height: var(--logo-size-xs);
177
+ }
178
+
179
+ .logo--sm {
180
+ height: var(--logo-size-sm);
181
+ }
182
+
183
+ .logo--md {
184
+ height: var(--logo-size-md);
185
+ }
186
+
187
+ .logo--lg {
188
+ height: var(--logo-size-lg);
189
+ }
190
+
191
+ .logo--xl {
192
+ height: var(--logo-size-xl);
193
+ }
194
+
195
+ .logo--xxl {
196
+ height: var(--logo-size-xxl);
197
+ }
198
+
199
+ .logo--inline {
200
+ display: inline-flex;
201
+ align-items: center;
202
+ }
203
+
204
+ .logo--block {
205
+ display: flex;
206
+ align-items: center;
207
+ }
208
+
209
+ .logo--center {
210
+ margin-left: auto;
211
+ margin-right: auto;
212
+ }
213
+
214
+ .logo--left {
215
+ justify-content: flex-start;
216
+ }
217
+
218
+ .logo--right {
219
+ justify-content: flex-end;
220
+ }
221
+
222
+ /* ---------------------------------------------------------
223
+ 5. LOGO COLOR MODE UTILITIES
224
+ --------------------------------------------------------- */
225
+
226
+ .logo--ink svg .logo-frame,
227
+ .logo--ink svg .logo-rail {
228
+ stroke: var(--color-logo-ink);
229
+ }
230
+
231
+ .logo--ink svg .logo-chevron {
232
+ stroke: var(--color-logo-accent);
233
+ }
234
+
235
+ .logo--inverse svg .logo-frame,
236
+ .logo--inverse svg .logo-rail {
237
+ stroke: var(--color-logo-ink-inverse);
238
+ }
239
+
240
+ .logo--inverse svg .logo-chevron {
241
+ stroke: var(--color-logo-accent-inverse);
242
+ }
243
+
244
+ /* ---------------------------------------------------------
245
+ 6. LOGO CLEAR SPACE UTILITIES
246
+ --------------------------------------------------------- */
247
+
248
+ .logo--pad-xs {
249
+ padding: var(--space-2);
250
+ }
251
+
252
+ .logo--pad-sm {
253
+ padding: var(--space-3);
254
+ }
255
+
256
+ .logo--pad-md {
257
+ padding: var(--space-4);
258
+ }
259
+
260
+ .logo--pad-lg {
261
+ padding: var(--space-6);
262
+ }
263
+
264
+ .logo--pad-xl {
265
+ padding: var(--space-8);
266
+ }