@livenetworks/ashlar 2.0.7 → 2.0.8

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.
Files changed (207) hide show
  1. package/LICENSE +641 -641
  2. package/components/COMPONENTS.md +1116 -1116
  3. package/components/index.js +81 -81
  4. package/components/ln-accordion/ln-accordion-dev.scss +8 -8
  5. package/components/ln-accordion/ln-accordion.js +1 -1
  6. package/components/ln-accordion/ln-accordion.schema.json +30 -30
  7. package/components/ln-ajax/ln-ajax-dev.scss +8 -8
  8. package/components/ln-ajax/ln-ajax.js +1 -1
  9. package/components/ln-ajax/ln-ajax.schema.json +30 -30
  10. package/components/ln-api-connector/ln-api-connector.js +1 -1
  11. package/components/ln-api-connector/ln-api-connector.schema.json +96 -96
  12. package/components/ln-api-connector/src/ln-api-connector.js +1 -0
  13. package/components/ln-api-queue/ln-api-queue.js +1 -1
  14. package/components/ln-api-queue/ln-api-queue.schema.json +34 -34
  15. package/components/ln-api-queue/src/ln-api-queue.js +3 -13
  16. package/components/ln-autoresize/ln-autoresize-dev.scss +8 -8
  17. package/components/ln-autoresize/ln-autoresize.js +1 -1
  18. package/components/ln-autoresize/ln-autoresize.schema.json +22 -22
  19. package/components/ln-autosave/ln-autosave-dev.scss +13 -13
  20. package/components/ln-autosave/ln-autosave.js +1 -1
  21. package/components/ln-autosave/ln-autosave.schema.json +48 -48
  22. package/components/ln-autosave/src/autosave-model.js +34 -34
  23. package/components/ln-chart/ln-chart.js +1 -1
  24. package/components/ln-chart/ln-chart.schema.json +146 -146
  25. package/components/ln-chart/src/chart-model.js +154 -154
  26. package/components/ln-circular-progress/ln-circular-progress.js +1 -1
  27. package/components/ln-circular-progress/ln-circular-progress.schema.json +42 -42
  28. package/components/ln-confirm/ln-confirm-dev.scss +24 -24
  29. package/components/ln-confirm/ln-confirm.js +1 -1
  30. package/components/ln-confirm/ln-confirm.schema.json +66 -66
  31. package/components/ln-confirm/src/ln-confirm.js +178 -178
  32. package/components/ln-core/crypto.js +286 -265
  33. package/components/ln-core/dom.js +115 -115
  34. package/components/ln-core/form.js +136 -136
  35. package/components/ln-core/helpers.js +33 -33
  36. package/components/ln-core/http.js +48 -48
  37. package/components/ln-core/index.js +1 -1
  38. package/components/ln-core/ln-core.schema.json +109 -109
  39. package/components/ln-core/locale.js +55 -55
  40. package/components/ln-core/matching.js +78 -78
  41. package/components/ln-core/number.js +125 -125
  42. package/components/ln-core/template.js +206 -206
  43. package/components/ln-couchdb-connector/ln-couchdb-connector.js +1 -1
  44. package/components/ln-couchdb-connector/ln-couchdb-connector.schema.json +50 -50
  45. package/components/ln-couchdb-connector/src/ln-couchdb-connector.js +1 -0
  46. package/components/ln-data-coordinator/README.md +9 -38
  47. package/components/ln-data-coordinator/ln-data-coordinator-dev.scss +8 -8
  48. package/components/ln-data-coordinator/ln-data-coordinator.js +1 -1
  49. package/components/ln-data-coordinator/ln-data-coordinator.schema.json +16 -16
  50. package/components/ln-data-coordinator/src/data-read-policy.js +0 -7
  51. package/components/ln-data-coordinator/src/ln-data-coordinator.js +428 -1308
  52. package/components/ln-data-store/ln-data-store-dev.scss +13 -13
  53. package/components/ln-data-store/ln-data-store.js +1 -1
  54. package/components/ln-data-store/ln-data-store.schema.json +84 -84
  55. package/components/ln-data-store/src/data-store-model.js +184 -184
  56. package/components/ln-data-store/src/ln-data-store.js +1 -1
  57. package/components/ln-date/ln-date.js +1 -1
  58. package/components/ln-date/ln-date.schema.json +92 -92
  59. package/components/ln-date/src/date-model.js +186 -186
  60. package/components/ln-debug/ln-debug.js +1 -1
  61. package/components/ln-debug/ln-debug.schema.json +28 -28
  62. package/components/ln-debug/src/console-sink.js +19 -19
  63. package/components/ln-debug/src/gate.js +95 -95
  64. package/components/ln-debug/src/generated-attributes.js +2 -2
  65. package/components/ln-dropdown/ln-dropdown-dev.scss +13 -13
  66. package/components/ln-dropdown/ln-dropdown.js +1 -1
  67. package/components/ln-dropdown/ln-dropdown.schema.json +90 -90
  68. package/components/ln-editor/ln-editor.js +1 -1
  69. package/components/ln-editor/ln-editor.schema.json +58 -58
  70. package/components/ln-external-links/ln-external-links.js +1 -1
  71. package/components/ln-external-links/ln-external-links.schema.json +18 -18
  72. package/components/ln-fill/ln-fill.js +1 -1
  73. package/components/ln-fill/ln-fill.schema.json +23 -23
  74. package/components/ln-filter/ln-filter.js +1 -1
  75. package/components/ln-filter/ln-filter.schema.json +153 -153
  76. package/components/ln-filter/src/filter-model.js +185 -185
  77. package/components/ln-form/ln-form-dev.scss +8 -8
  78. package/components/ln-form/ln-form.js +1 -1
  79. package/components/ln-form/ln-form.schema.json +45 -45
  80. package/components/ln-http/ln-http.js +1 -1
  81. package/components/ln-http/ln-http.schema.json +6 -6
  82. package/components/ln-icon/ln-icon.schema.json +6 -6
  83. package/components/ln-include/ln-include.js +1 -1
  84. package/components/ln-include/ln-include.schema.json +23 -23
  85. package/components/ln-key/ln-key-dev.scss +18 -18
  86. package/components/ln-key/ln-key.js +1 -1
  87. package/components/ln-key/ln-key.schema.json +56 -56
  88. package/components/ln-key/src/ln-key.js +10 -10
  89. package/components/ln-link/ln-link-dev.scss +8 -8
  90. package/components/ln-link/ln-link.js +1 -1
  91. package/components/ln-link/ln-link.schema.json +22 -22
  92. package/components/ln-list/README.md +152 -152
  93. package/components/ln-list/ln-list-dev.scss +8 -8
  94. package/components/ln-list/ln-list.js +1 -1
  95. package/components/ln-list/ln-list.schema.json +166 -166
  96. package/components/ln-modal/ln-modal.js +1 -1
  97. package/components/ln-modal/ln-modal.schema.json +65 -65
  98. package/components/ln-nav/ln-nav.js +1 -1
  99. package/components/ln-nav/ln-nav.schema.json +25 -25
  100. package/components/ln-number/ln-number.js +1 -1
  101. package/components/ln-number/ln-number.schema.json +63 -63
  102. package/components/ln-number/src/number-model.js +31 -31
  103. package/components/ln-obfuscator/README.md +60 -60
  104. package/components/ln-obfuscator/ln-obfuscator.js +1 -1
  105. package/components/ln-obfuscator/ln-obfuscator.schema.json +49 -49
  106. package/components/ln-obfuscator/src/ln-obfuscator.js +159 -159
  107. package/components/ln-obfuscator/src/obfuscator-model.js +250 -250
  108. package/components/ln-options/ln-options.js +1 -1
  109. package/components/ln-options/ln-options.schema.json +41 -41
  110. package/components/ln-persist/README.md +151 -151
  111. package/components/ln-persist/ln-persist.js +1 -1
  112. package/components/ln-persist/ln-persist.schema.json +28 -28
  113. package/components/ln-persist/src/ln-persist.js +83 -83
  114. package/components/ln-picklist/README.md +230 -230
  115. package/components/ln-picklist/ln-picklist-dev.scss +22 -22
  116. package/components/ln-picklist/ln-picklist.js +1 -1
  117. package/components/ln-picklist/ln-picklist.schema.json +49 -49
  118. package/components/ln-picklist/src/ln-picklist.js +228 -228
  119. package/components/ln-popover/ln-popover-dev.scss +13 -13
  120. package/components/ln-popover/ln-popover.js +1 -1
  121. package/components/ln-popover/ln-popover.schema.json +82 -82
  122. package/components/ln-progress/ln-progress-dev.scss +8 -8
  123. package/components/ln-progress/ln-progress.js +1 -1
  124. package/components/ln-progress/ln-progress.schema.json +40 -40
  125. package/components/ln-router/ln-router.js +1 -1
  126. package/components/ln-router/ln-router.schema.json +76 -76
  127. package/components/ln-scroll/README.md +45 -45
  128. package/components/ln-scroll/ln-scroll.js +1 -1
  129. package/components/ln-scroll/ln-scroll.schema.json +85 -85
  130. package/components/ln-scroll/src/ln-scroll.js +150 -150
  131. package/components/ln-search/README.md +188 -188
  132. package/components/ln-search/ln-search.js +1 -1
  133. package/components/ln-search/ln-search.schema.json +103 -103
  134. package/components/ln-slug/ln-slug.js +1 -1
  135. package/components/ln-slug/ln-slug.schema.json +23 -23
  136. package/components/ln-sort/ln-sort.js +1 -1
  137. package/components/ln-sort/ln-sort.schema.json +104 -104
  138. package/components/ln-sort/src/ln-sort.js +321 -321
  139. package/components/ln-sort/src/sort-model.js +117 -117
  140. package/components/ln-sortable/ln-sortable-dev.scss +13 -13
  141. package/components/ln-sortable/ln-sortable.js +1 -1
  142. package/components/ln-sortable/ln-sortable.schema.json +36 -36
  143. package/components/ln-stat/ln-stat-dev.scss +8 -8
  144. package/components/ln-stat/ln-stat.js +1 -1
  145. package/components/ln-stat/ln-stat.schema.json +32 -32
  146. package/components/ln-stat/src/stat-model.js +28 -28
  147. package/components/ln-table/ln-table.js +1 -1
  148. package/components/ln-table/ln-table.schema.json +211 -211
  149. package/components/ln-table/src/table-model.js +98 -98
  150. package/components/ln-table-coordinator/ln-table-coordinator.js +1 -1
  151. package/components/ln-table-coordinator/ln-table-coordinator.schema.json +93 -93
  152. package/components/ln-tabs/ln-tabs.js +1 -1
  153. package/components/ln-tabs/ln-tabs.schema.json +75 -75
  154. package/components/ln-tabs/src/ln-tabs.js +208 -208
  155. package/components/ln-tabs/src/tabs-model.js +82 -82
  156. package/components/ln-time/ln-time-dev.scss +13 -13
  157. package/components/ln-time/ln-time.js +1 -1
  158. package/components/ln-time/ln-time.schema.json +38 -38
  159. package/components/ln-toast/ln-toast.js +1 -1
  160. package/components/ln-toast/ln-toast.schema.json +65 -65
  161. package/components/ln-toggle/ln-toggle.js +1 -1
  162. package/components/ln-toggle/ln-toggle.schema.json +52 -52
  163. package/components/ln-tooltip/ln-tooltip.js +1 -1
  164. package/components/ln-tooltip/ln-tooltip.schema.json +86 -86
  165. package/components/ln-translations/ln-translations.js +1 -1
  166. package/components/ln-translations/ln-translations.schema.json +120 -120
  167. package/components/ln-ui-coordinator/README.md +62 -62
  168. package/components/ln-ui-coordinator/ln-ui-coordinator.js +1 -1
  169. package/components/ln-ui-coordinator/ln-ui-coordinator.schema.json +28 -28
  170. package/components/ln-ui-coordinator/src/ln-ui-coordinator.js +140 -140
  171. package/components/ln-upload/ln-upload.js +1 -1
  172. package/components/ln-upload/ln-upload.schema.json +193 -193
  173. package/components/ln-upload/src/upload-model.js +78 -78
  174. package/components/ln-validate/ln-validate.js +1 -1
  175. package/components/ln-validate/ln-validate.schema.json +50 -50
  176. package/components/ln-validate/src/validate-model.js +64 -64
  177. package/components/ln-websocket-connector/README.md +166 -166
  178. package/components/ln-websocket-connector/ln-websocket-connector.js +1 -1
  179. package/components/ln-websocket-connector/ln-websocket-connector.schema.json +29 -29
  180. package/components/ln-websocket-connector/src/ln-websocket-connector.js +283 -279
  181. package/ln-ashlar.html-data.json +7 -8
  182. package/package.json +84 -84
  183. package/theme/brand.css +73 -73
  184. package/theme/components/_confirm.scss +6 -6
  185. package/theme/components/_picklist.scss +3 -3
  186. package/theme/config/_palette.scss +274 -274
  187. package/theme/config/_theme.scss +292 -292
  188. package/theme/config/_tokens.scss +285 -285
  189. package/theme/config/mixins/_index.scss +62 -62
  190. package/theme/config/mixins/_picklist.scss +66 -66
  191. package/theme/ln-ashlar-dev.scss +66 -66
  192. package/theme/ln-ashlar-landing.scss +56 -56
  193. package/theme/ln-ashlar-theme.scss +63 -63
  194. package/theme/presentation/_bento.scss +151 -151
  195. package/theme/presentation/_cta.scss +111 -111
  196. package/theme/presentation/_effects.scss +216 -216
  197. package/theme/presentation/_features.scss +108 -108
  198. package/theme/presentation/_footer.scss +129 -129
  199. package/theme/presentation/_hero.scss +158 -158
  200. package/theme/presentation/_layout.scss +170 -170
  201. package/theme/presentation/_navbar.scss +140 -140
  202. package/theme/presentation/_pricing.scss +262 -262
  203. package/theme/presentation/_stats.scss +87 -87
  204. package/theme/presentation/_testimonials.scss +124 -124
  205. package/theme/presentation/_tokens.scss +39 -39
  206. package/theme/presentation/_typography.scss +163 -163
  207. package/web-types.json +12 -12
package/package.json CHANGED
@@ -1,84 +1,84 @@
1
- {
2
- "name": "@livenetworks/ashlar",
3
- "version": "2.0.7",
4
- "description": "LiveNetworks unified frontend library - CSS framework and vanilla JS components",
5
- "license": "GPL-3.0-or-later",
6
- "author": "Live Networks",
7
- "type": "module",
8
- "publishConfig": {
9
- "access": "public"
10
- },
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/livenetworks/ln-ashlar.git"
14
- },
15
- "homepage": "https://github.com/livenetworks/ln-ashlar#readme",
16
- "bugs": "https://github.com/livenetworks/ln-ashlar/issues",
17
- "keywords": [
18
- "css",
19
- "scss",
20
- "design-system",
21
- "frontend",
22
- "components",
23
- "vanilla-js"
24
- ],
25
- "main": "./dist/ln-ashlar.js",
26
- "style": "./dist/ln-ashlar.css",
27
- "web-types": "./web-types.json",
28
- "files": [
29
- "dist/",
30
- "theme/",
31
- "components/",
32
- "ln-ashlar.html-data.json",
33
- "web-types.json"
34
- ],
35
- "exports": {
36
- ".": {
37
- "import": "./dist/ln-ashlar.js",
38
- "default": "./dist/ln-ashlar.js"
39
- },
40
- "./core.css": "./dist/ln-ashlar-core.css",
41
- "./theme.css": "./dist/ln-ashlar-theme.css",
42
- "./full.css": "./dist/ln-ashlar.css",
43
- "./landing.css": "./dist/ln-ashlar-landing.css",
44
- "./presentation.css": "./dist/ln-ashlar-landing.css",
45
- "./dev.css": "./dist/ln-ashlar-dev.css",
46
- "./dev.js": "./dist/ln-ashlar-dev.js",
47
- "./theme/*": "./theme/*",
48
- "./components/*": "./components/*"
49
- },
50
- "scripts": {
51
- "test": "npm run sync:ln-schemas:check && npm run sync:ln-events:check && npm run sync:css-tokens:check && node --test \"tests/*.test.js\"",
52
- "test:p0": "node --test tests/p0-data-integrity.test.js",
53
- "dev": "node scripts/build.mjs --watch",
54
- "build": "npm run sync:ln-schemas && npm run sync:ln-events && npm run sync:css-tokens && node scripts/build.mjs && npm run build:dev-css && npm run build:demos",
55
- "build:demos": "npm run build:demo-index && npm run build:demo-admin && npm run build:demo-docuflow && npm run build:demo-spa && npm run build:demo-landing && npm run build:demo-corporate",
56
- "build:dev-css": "sass theme/ln-ashlar-dev.scss demo/dist/ln-ashlar-dev.css --no-source-map --style=compressed",
57
- "generate:brand-assets": "powershell -ExecutionPolicy Bypass -File scripts/generate-brand-assets.ps1 && node scripts/generate-svg-favicon.mjs",
58
- "build:demo-index": "sass demo/index.scss demo/index.css --no-source-map --style=compressed",
59
- "build:demo-admin": "sass demo/admin/src/admin.scss demo/admin/dist/admin.css --no-source-map --style=compressed && node -e \"const fs = require('fs'); fs.copyFileSync('demo/admin/src/demo.js', 'demo/admin/dist/demo.js')\" && node demo/admin/src/build-pages.mjs",
60
- "build:demo-docuflow": "sass demo/docuflow/docuflow.scss demo/docuflow/dist/docuflow.css --no-source-map --style=compressed",
61
- "build:demo-spa": "node demo/spa/build.mjs",
62
- "build:demo-landing": "sass demo/landing/landing.scss demo/landing/landing.css --no-source-map --style=compressed",
63
- "build:demo-corporate": "sass demo/corporate/corporate.scss demo/corporate/corporate.css --no-source-map --style=compressed",
64
- "sync:ln-schemas": "node scripts/sync-ln-schemas.mjs",
65
- "sync:ln-schemas:check": "node scripts/sync-ln-schemas.mjs --check",
66
- "sync:ln-events": "node scripts/sync-ln-events.mjs",
67
- "sync:ln-events:check": "node scripts/sync-ln-events.mjs --check",
68
- "sync:ln-events:strict": "node scripts/sync-ln-events.mjs --strict",
69
- "sync:css-tokens": "node scripts/sync-css-tokens.mjs",
70
- "sync:css-tokens:check": "node scripts/sync-css-tokens.mjs --check",
71
- "manifest": "node scripts/extract-manifest.mjs",
72
- "manifest:file": "node scripts/extract-manifest.mjs --output=docs/manifest.txt",
73
- "generate:llms": "node scripts/generate-llms.mjs",
74
- "generate:llms:check": "node scripts/generate-llms.mjs --check"
75
- },
76
- "devDependencies": {
77
- "@tabler/icons": "^3.41.1",
78
- "fake-indexeddb": "^6.2.4",
79
- "flag-icons": "^7.5.0",
80
- "puppeteer-core": "^25.1.0",
81
- "sass-embedded": "^1.83.0",
82
- "vite": "^6.0.0"
83
- }
84
- }
1
+ {
2
+ "name": "@livenetworks/ashlar",
3
+ "version": "2.0.8",
4
+ "description": "LiveNetworks unified frontend library - CSS framework and vanilla JS components",
5
+ "license": "GPL-3.0-or-later",
6
+ "author": "Live Networks",
7
+ "type": "module",
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/livenetworks/ln-ashlar.git"
14
+ },
15
+ "homepage": "https://github.com/livenetworks/ln-ashlar#readme",
16
+ "bugs": "https://github.com/livenetworks/ln-ashlar/issues",
17
+ "keywords": [
18
+ "css",
19
+ "scss",
20
+ "design-system",
21
+ "frontend",
22
+ "components",
23
+ "vanilla-js"
24
+ ],
25
+ "main": "./dist/ln-ashlar.js",
26
+ "style": "./dist/ln-ashlar.css",
27
+ "web-types": "./web-types.json",
28
+ "files": [
29
+ "dist/",
30
+ "theme/",
31
+ "components/",
32
+ "ln-ashlar.html-data.json",
33
+ "web-types.json"
34
+ ],
35
+ "exports": {
36
+ ".": {
37
+ "import": "./dist/ln-ashlar.js",
38
+ "default": "./dist/ln-ashlar.js"
39
+ },
40
+ "./core.css": "./dist/ln-ashlar-core.css",
41
+ "./theme.css": "./dist/ln-ashlar-theme.css",
42
+ "./full.css": "./dist/ln-ashlar.css",
43
+ "./landing.css": "./dist/ln-ashlar-landing.css",
44
+ "./presentation.css": "./dist/ln-ashlar-landing.css",
45
+ "./dev.css": "./dist/ln-ashlar-dev.css",
46
+ "./dev.js": "./dist/ln-ashlar-dev.js",
47
+ "./theme/*": "./theme/*",
48
+ "./components/*": "./components/*"
49
+ },
50
+ "scripts": {
51
+ "test": "npm run sync:ln-schemas:check && npm run sync:ln-events:check && npm run sync:css-tokens:check && node --test \"tests/*.test.js\"",
52
+ "test:p0": "node --test tests/p0-data-integrity.test.js",
53
+ "dev": "node scripts/build.mjs --watch",
54
+ "build": "npm run sync:ln-schemas && npm run sync:ln-events && npm run sync:css-tokens && node scripts/build.mjs && npm run build:dev-css && npm run build:demos",
55
+ "build:demos": "npm run build:demo-index && npm run build:demo-admin && npm run build:demo-docuflow && npm run build:demo-spa && npm run build:demo-landing && npm run build:demo-corporate",
56
+ "build:dev-css": "sass theme/ln-ashlar-dev.scss demo/dist/ln-ashlar-dev.css --no-source-map --style=compressed",
57
+ "generate:brand-assets": "powershell -ExecutionPolicy Bypass -File scripts/generate-brand-assets.ps1 && node scripts/generate-svg-favicon.mjs",
58
+ "build:demo-index": "sass demo/index.scss demo/index.css --no-source-map --style=compressed",
59
+ "build:demo-admin": "sass demo/admin/src/admin.scss demo/admin/dist/admin.css --no-source-map --style=compressed && node -e \"const fs = require('fs'); fs.copyFileSync('demo/admin/src/demo.js', 'demo/admin/dist/demo.js')\" && node demo/admin/src/build-pages.mjs",
60
+ "build:demo-docuflow": "sass demo/docuflow/docuflow.scss demo/docuflow/dist/docuflow.css --no-source-map --style=compressed",
61
+ "build:demo-spa": "node demo/spa/build.mjs",
62
+ "build:demo-landing": "sass demo/landing/landing.scss demo/landing/landing.css --no-source-map --style=compressed",
63
+ "build:demo-corporate": "sass demo/corporate/corporate.scss demo/corporate/corporate.css --no-source-map --style=compressed",
64
+ "sync:ln-schemas": "node scripts/sync-ln-schemas.mjs",
65
+ "sync:ln-schemas:check": "node scripts/sync-ln-schemas.mjs --check",
66
+ "sync:ln-events": "node scripts/sync-ln-events.mjs",
67
+ "sync:ln-events:check": "node scripts/sync-ln-events.mjs --check",
68
+ "sync:ln-events:strict": "node scripts/sync-ln-events.mjs --strict",
69
+ "sync:css-tokens": "node scripts/sync-css-tokens.mjs",
70
+ "sync:css-tokens:check": "node scripts/sync-css-tokens.mjs --check",
71
+ "manifest": "node scripts/extract-manifest.mjs",
72
+ "manifest:file": "node scripts/extract-manifest.mjs --output=docs/manifest.txt",
73
+ "generate:llms": "node scripts/generate-llms.mjs",
74
+ "generate:llms:check": "node scripts/generate-llms.mjs --check"
75
+ },
76
+ "devDependencies": {
77
+ "@tabler/icons": "^3.41.1",
78
+ "fake-indexeddb": "^6.2.4",
79
+ "flag-icons": "^7.5.0",
80
+ "puppeteer-core": "^25.1.0",
81
+ "sass-embedded": "^1.83.0",
82
+ "vite": "^6.0.0"
83
+ }
84
+ }
package/theme/brand.css CHANGED
@@ -1,73 +1,73 @@
1
- /**
2
- * ============================================================================
3
- * ln-ashlar — Brand Configuration Template (brand.css)
4
- * ============================================================================
5
- *
6
- * This file allows client applications to override corporate brand colors
7
- * and typography in a single place, without modifying or recompiling core
8
- * library files. Brand is polarity-free by default: one :root declaration
9
- * serves light and dark alike.
10
- *
11
- * HOW TO USE:
12
- * 1. Copy this file into your project (e.g., as `assets/css/brand.css`).
13
- * 2. Link this file in your HTML. Thanks to zero-specificity `:where()` selectors
14
- * in ln-ashlar, your definitions here will ALWAYS win regardless of stylesheet
15
- * loading order (even if loaded before `ln-ashlar.css`).
16
- *
17
- * IMPORTANT RULES:
18
- * - Bare HSL Triplets: Values for `--brand-primary` and `--brand-secondary` MUST
19
- * be specified as bare HSL triplets (e.g. `221 83% 48%`), NEVER wrapped in `hsl(...)`.
20
- * The library internally composes alpha transparency over these values using CSS
21
- * color slash syntax: `hsl(var(--color-primary) / 0.2)`. Wrapping them in `hsl()`
22
- * would produce invalid syntax like `hsl(hsl(...) / 0.2)` and drop declarations.
23
- *
24
- * - Tint Overrides: By default, `--color-accent-tint` and `--color-accent-tint-strong`
25
- * are automatically computed via `color-mix()` against local surface backgrounds.
26
- * If your brand requires custom hand-tuned tint shades, uncomment and set
27
- * `--brand-primary-tint` and `--brand-primary-tint-strong`.
28
- *
29
- * - Additional Overrides: You may also customize font families (`--font-sans`, `--font-mono`)
30
- * or override any neutral color tokens (`--color-neutral-50` ... `--color-neutral-900`)
31
- * within the respective theme blocks below.
32
- * ============================================================================
33
- */
34
-
35
- /* -------------------------------------------------------------------------- */
36
- /* Light Mode Brand Values */
37
- /* -------------------------------------------------------------------------- */
38
- :root {
39
- /* Primary brand color (bare HSL triplet: hue saturation% lightness%) */
40
- --brand-primary: 221 83% 43%;
41
-
42
- /* Secondary brand accent color (bare HSL triplet) */
43
- --brand-secondary: 160 84% 36%;
44
-
45
- /* Typography font stacks (optional) */
46
- --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
47
- --font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
48
-
49
- /* Optional manual accent tint overrides (defaults are computed via color-mix) */
50
- /* --brand-primary-tint: hsl(221 83% 97%); */
51
- /* --brand-primary-tint-strong: hsl(221 83% 94%); */
52
- }
53
-
54
- /* -------------------------------------------------------------------------- */
55
- /* Dark Mode Brand Values — OPT-IN, commented out by default */
56
- /* -------------------------------------------------------------------------- */
57
- /*
58
- * Uncomment ONLY if your brand genuinely needs a different primary on dark
59
- * surfaces. Be aware of the cost: a per-polarity brand override re-declares
60
- * the token on EVERY nested [data-mode="dark"] island, and a declaration beats
61
- * inheritance at any specificity. So a dark island nested inside a scoped
62
- * [data-theme] region will clobber that region's brand and snap back to the
63
- * value below. Declaring brand at :root only — the default above — lets
64
- * [data-theme] islands rebind it cleanly.
65
- *
66
- * [data-mode="dark"] {
67
- * --brand-primary: 221 83% 48%;
68
- * --brand-secondary: 160 84% 36%;
69
- *
70
- * --brand-primary-tint: hsl(232 50% 15%);
71
- * --brand-primary-tint-strong: hsl(232 60% 22%);
72
- * }
73
- */
1
+ /**
2
+ * ============================================================================
3
+ * ln-ashlar — Brand Configuration Template (brand.css)
4
+ * ============================================================================
5
+ *
6
+ * This file allows client applications to override corporate brand colors
7
+ * and typography in a single place, without modifying or recompiling core
8
+ * library files. Brand is polarity-free by default: one :root declaration
9
+ * serves light and dark alike.
10
+ *
11
+ * HOW TO USE:
12
+ * 1. Copy this file into your project (e.g., as `assets/css/brand.css`).
13
+ * 2. Link this file in your HTML. Thanks to zero-specificity `:where()` selectors
14
+ * in ln-ashlar, your definitions here will ALWAYS win regardless of stylesheet
15
+ * loading order (even if loaded before `ln-ashlar.css`).
16
+ *
17
+ * IMPORTANT RULES:
18
+ * - Bare HSL Triplets: Values for `--brand-primary` and `--brand-secondary` MUST
19
+ * be specified as bare HSL triplets (e.g. `221 83% 48%`), NEVER wrapped in `hsl(...)`.
20
+ * The library internally composes alpha transparency over these values using CSS
21
+ * color slash syntax: `hsl(var(--color-primary) / 0.2)`. Wrapping them in `hsl()`
22
+ * would produce invalid syntax like `hsl(hsl(...) / 0.2)` and drop declarations.
23
+ *
24
+ * - Tint Overrides: By default, `--color-accent-tint` and `--color-accent-tint-strong`
25
+ * are automatically computed via `color-mix()` against local surface backgrounds.
26
+ * If your brand requires custom hand-tuned tint shades, uncomment and set
27
+ * `--brand-primary-tint` and `--brand-primary-tint-strong`.
28
+ *
29
+ * - Additional Overrides: You may also customize font families (`--font-sans`, `--font-mono`)
30
+ * or override any neutral color tokens (`--color-neutral-50` ... `--color-neutral-900`)
31
+ * within the respective theme blocks below.
32
+ * ============================================================================
33
+ */
34
+
35
+ /* -------------------------------------------------------------------------- */
36
+ /* Light Mode Brand Values */
37
+ /* -------------------------------------------------------------------------- */
38
+ :root {
39
+ /* Primary brand color (bare HSL triplet: hue saturation% lightness%) */
40
+ --brand-primary: 221 83% 43%;
41
+
42
+ /* Secondary brand accent color (bare HSL triplet) */
43
+ --brand-secondary: 160 84% 36%;
44
+
45
+ /* Typography font stacks (optional) */
46
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
47
+ --font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
48
+
49
+ /* Optional manual accent tint overrides (defaults are computed via color-mix) */
50
+ /* --brand-primary-tint: hsl(221 83% 97%); */
51
+ /* --brand-primary-tint-strong: hsl(221 83% 94%); */
52
+ }
53
+
54
+ /* -------------------------------------------------------------------------- */
55
+ /* Dark Mode Brand Values — OPT-IN, commented out by default */
56
+ /* -------------------------------------------------------------------------- */
57
+ /*
58
+ * Uncomment ONLY if your brand genuinely needs a different primary on dark
59
+ * surfaces. Be aware of the cost: a per-polarity brand override re-declares
60
+ * the token on EVERY nested [data-mode="dark"] island, and a declaration beats
61
+ * inheritance at any specificity. So a dark island nested inside a scoped
62
+ * [data-theme] region will clobber that region's brand and snap back to the
63
+ * value below. Declaring brand at :root only — the default above — lets
64
+ * [data-theme] islands rebind it cleanly.
65
+ *
66
+ * [data-mode="dark"] {
67
+ * --brand-primary: 221 83% 48%;
68
+ * --brand-secondary: 160 84% 36%;
69
+ *
70
+ * --brand-primary-tint: hsl(232 50% 15%);
71
+ * --brand-primary-tint-strong: hsl(232 60% 22%);
72
+ * }
73
+ */
@@ -1,6 +1,6 @@
1
- // Armed state — rebind the accent token so a button carrying @mixin btn turns
2
- // red while confirming and theme overrides keep applying. See
3
- // theme/base/_global.scss for this being the documented colour-variant hook.
4
- [data-ln-confirm-state="confirming"] {
5
- --color-primary: var(--color-error);
6
- }
1
+ // Armed state — rebind the accent token so a button carrying @mixin btn turns
2
+ // red while confirming and theme overrides keep applying. See
3
+ // theme/base/_global.scss for this being the documented colour-variant hook.
4
+ [data-ln-confirm-state="confirming"] {
5
+ --color-primary: var(--color-error);
6
+ }
@@ -1,3 +1,3 @@
1
- @use '../config/mixins' as *;
2
-
3
- [data-ln-picklist] { @include picklist; }
1
+ @use '../config/mixins' as *;
2
+
3
+ [data-ln-picklist] { @include picklist; }