@collectivetrait/lineaui 0.0.0-stage → 1.0.0

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 (130) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/LICENSE +21 -0
  3. package/README.md +113 -2
  4. package/config.json +3 -0
  5. package/dist/blocks.css +5042 -0
  6. package/dist/blocks.css.map +1 -0
  7. package/dist/bundle.js +873 -0
  8. package/dist/core.css +1641 -0
  9. package/dist/core.css.map +1 -0
  10. package/dist/icons-manifest.json +1 -0
  11. package/dist/icons.css +158 -0
  12. package/dist/styles.css +10546 -0
  13. package/dist/styles.css.map +1 -0
  14. package/dist/theme-init.js +8 -0
  15. package/dist/utilities.css +3865 -0
  16. package/dist/utilities.css.map +1 -0
  17. package/humans.txt +8 -0
  18. package/js/config.js +3 -0
  19. package/js/index.js +45 -0
  20. package/js/modules/copy.js +64 -0
  21. package/js/modules/dialog.js +55 -0
  22. package/js/modules/dismiss.js +43 -0
  23. package/js/modules/dropdown.js +108 -0
  24. package/js/modules/gallery.js +84 -0
  25. package/js/modules/highlight.js +89 -0
  26. package/js/modules/navigation.js +104 -0
  27. package/js/modules/quantity.js +63 -0
  28. package/js/modules/rhythm.js +21 -0
  29. package/js/modules/table.js +109 -0
  30. package/js/modules/tabs.js +112 -0
  31. package/js/modules/toast.js +97 -0
  32. package/js/modules/tooltip.js +106 -0
  33. package/js/theme-init.js +8 -0
  34. package/package.json +71 -4
  35. package/scss/_blocks-only.scss +4 -0
  36. package/scss/_core.scss +7 -0
  37. package/scss/_index.scss +12 -0
  38. package/scss/_layers.scss +2 -0
  39. package/scss/_utilities-only.scss +4 -0
  40. package/scss/base/_code.scss +50 -0
  41. package/scss/base/_forms.scss +110 -0
  42. package/scss/base/_index.scss +7 -0
  43. package/scss/base/_interactive.scss +25 -0
  44. package/scss/base/_media.scss +28 -0
  45. package/scss/base/_reset.scss +53 -0
  46. package/scss/base/_tables.scss +49 -0
  47. package/scss/base/_typography.scss +232 -0
  48. package/scss/blocks/_accordion.scss +88 -0
  49. package/scss/blocks/_alert.scss +101 -0
  50. package/scss/blocks/_avatar.scss +104 -0
  51. package/scss/blocks/_badge.scss +72 -0
  52. package/scss/blocks/_breadcrumb.scss +65 -0
  53. package/scss/blocks/_button-group.scss +73 -0
  54. package/scss/blocks/_button.scss +212 -0
  55. package/scss/blocks/_card.scss +146 -0
  56. package/scss/blocks/_choice.scss +163 -0
  57. package/scss/blocks/_code.scss +157 -0
  58. package/scss/blocks/_data-list.scss +92 -0
  59. package/scss/blocks/_divider.scss +54 -0
  60. package/scss/blocks/_drawer.scss +160 -0
  61. package/scss/blocks/_dropdown.scss +167 -0
  62. package/scss/blocks/_empty-state.scss +61 -0
  63. package/scss/blocks/_field.scss +146 -0
  64. package/scss/blocks/_form.scss +87 -0
  65. package/scss/blocks/_gallery.scss +120 -0
  66. package/scss/blocks/_index.scss +49 -0
  67. package/scss/blocks/_input-group.scss +95 -0
  68. package/scss/blocks/_line-item.scss +105 -0
  69. package/scss/blocks/_list.scss +117 -0
  70. package/scss/blocks/_media.scss +105 -0
  71. package/scss/blocks/_menu.scss +191 -0
  72. package/scss/blocks/_meta.scss +59 -0
  73. package/scss/blocks/_modal.scss +156 -0
  74. package/scss/blocks/_navbar.scss +227 -0
  75. package/scss/blocks/_order-summary.scss +92 -0
  76. package/scss/blocks/_page-header.scss +88 -0
  77. package/scss/blocks/_pagination.scss +110 -0
  78. package/scss/blocks/_price.scss +88 -0
  79. package/scss/blocks/_product-card.scss +138 -0
  80. package/scss/blocks/_progress.scss +68 -0
  81. package/scss/blocks/_prose.scss +165 -0
  82. package/scss/blocks/_quantity.scss +73 -0
  83. package/scss/blocks/_quote.scss +71 -0
  84. package/scss/blocks/_rating.scss +50 -0
  85. package/scss/blocks/_site-footer.scss +135 -0
  86. package/scss/blocks/_skeleton.scss +63 -0
  87. package/scss/blocks/_spinner.scss +44 -0
  88. package/scss/blocks/_stat.scss +111 -0
  89. package/scss/blocks/_steps.scss +147 -0
  90. package/scss/blocks/_swatch.scss +117 -0
  91. package/scss/blocks/_table.scss +242 -0
  92. package/scss/blocks/_tabs.scss +168 -0
  93. package/scss/blocks/_tag.scss +72 -0
  94. package/scss/blocks/_timeline.scss +84 -0
  95. package/scss/blocks/_toast.scss +146 -0
  96. package/scss/blocks/_toolbar.scss +67 -0
  97. package/scss/blocks/_tooltip.scss +63 -0
  98. package/scss/helpers/_index.scss +2 -0
  99. package/scss/helpers/_rhythm.scss +64 -0
  100. package/scss/helpers/_typography.scss +4 -0
  101. package/scss/layout/_cluster.scss +43 -0
  102. package/scss/layout/_container.scss +26 -0
  103. package/scss/layout/_grid.scss +90 -0
  104. package/scss/layout/_index.scss +5 -0
  105. package/scss/layout/_section.scss +78 -0
  106. package/scss/layout/_shell.scss +87 -0
  107. package/scss/settings/_blocks.scss +3 -0
  108. package/scss/settings/_breakpoints.scss +7 -0
  109. package/scss/settings/_fonts.scss +5 -0
  110. package/scss/settings/_index.scss +7 -0
  111. package/scss/settings/_layout.scss +5 -0
  112. package/scss/settings/_prefix.scss +1 -0
  113. package/scss/settings/_rhythm.scss +6 -0
  114. package/scss/settings/_utilities.scss +2 -0
  115. package/scss/tokens/_borders.scss +16 -0
  116. package/scss/tokens/_elevation.scss +37 -0
  117. package/scss/tokens/_index.scss +8 -0
  118. package/scss/tokens/_layout.scss +17 -0
  119. package/scss/tokens/_motion.scss +17 -0
  120. package/scss/tokens/_palette.scss +50 -0
  121. package/scss/tokens/_roles.scss +90 -0
  122. package/scss/tokens/_space.scss +9 -0
  123. package/scss/tokens/_type.scss +57 -0
  124. package/scss/tools/_bem.scss +22 -0
  125. package/scss/tools/_index.scss +4 -0
  126. package/scss/tools/_rhythm.scss +26 -0
  127. package/scss/tools/_role-engine.scss +16 -0
  128. package/scss/tools/_utility-generator.scss +74 -0
  129. package/scss/utilities/_index.scss +8 -0
  130. package/scss/utilities/_map.scss +321 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,34 @@
1
+ # Changelog
2
+
3
+ All notable changes to Linea UI will be documented in this file.
4
+
5
+ ## [1.0.0] — 2026-10-08
6
+
7
+ Initial public release of Linea UI.
8
+
9
+ ### Added
10
+ - **Foundation** — CSS reset, typography scale, color tokens, spacing utilities
11
+ and an 8 px vertical-rhythm grid.
12
+ - **Cascade layers** — all styles are organized into `core`, `blocks` and
13
+ `utilities` layers for predictable specificity.
14
+ - **BEM naming** — every component follows Block, Element, Modifier conventions.
15
+ - **Layout blocks** — section, grid, sidebar and container helpers.
16
+ - **Content blocks** — prose, page-header, card, list, avatar, badge, code,
17
+ meta, quote and tag.
18
+ - **Component blocks** — alert, breadcrumb, button-group, divider, drawer,
19
+ dropdown, menu, modal, navbar, pagination, progress, site-footer, skeleton,
20
+ spinner, steps, tabs, toast and tooltip.
21
+ - **Form blocks** — input, select, textarea, checkbox, radio, switch, slider
22
+ and form-field layout with validation states.
23
+ - **Pattern blocks** — hero sections and common page patterns.
24
+ - **Utility classes** — spacing, display, text alignment, color and visibility
25
+ helpers compiled as the last layer.
26
+ - **JavaScript modules** — drawer, dropdown, modal, tabs, toast and tooltip
27
+ behaviors bundled as ES modules.
28
+ - **Theme support** — light and dark modes via `data-theme` attribute with
29
+ automatic OS preference detection.
30
+ - **SCSS source** — full source available for custom builds and variable
31
+ overrides.
32
+ - **CSS outputs** — pre-built `styles.css` (all-in-one), plus individual
33
+ `core.css`, `blocks.css` and `utilities.css` files.
34
+ - **MIT license**.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) Collective Trait
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,114 @@
1
- # Temporary Holding Version
1
+ # Linea UI
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A lightweight SCSS and JavaScript component library built on two core principles: **BEM naming** and an **8 px vertical rhythm**. Styles are organized into CSS cascade layers for predictable specificity, and every component ships with accessible defaults and a small footprint.
4
+
5
+ Full documentation, live demos, and usage guides are available at **[lineaui.com](https://lineaui.com)**.
6
+
7
+ ## Core principles
8
+
9
+ **BEM naming** — Every component follows Block–Element–Modifier conventions. Selectors are flat and predictable: `ln-button`, `ln-card__header`, `ln-button--primary`. The `ln-` prefix applies to layout and block classes; helpers and utilities use bare names (`mb-3`, `text-center`). The prefix is configurable via `config.json`. See the [BEM guide](https://lineaui.com/getting-started/bem) for details.
10
+
11
+ **Vertical rhythm** — All spacing, line heights, and component sizing align to an 8 px baseline grid. This keeps text, form controls, and whitespace visually consistent across any combination of components. See the [vertical rhythm guide](https://lineaui.com/getting-started/vertical-rhythm) for details.
12
+
13
+ ## Quick start
14
+
15
+ Include the stylesheet and script:
16
+
17
+ ```html
18
+ <link rel="stylesheet" href="path/to/lineaui/dist/styles.css">
19
+ <script type="module" src="path/to/lineaui/dist/bundle.js"></script>
20
+ ```
21
+
22
+ Or import in a bundler:
23
+
24
+ ```js
25
+ import 'lineaui/dist/styles.css';
26
+ import 'lineaui';
27
+ ```
28
+
29
+ To prevent a flash of unstyled content on themed pages, add the theme-init script to `<head>` before any stylesheet:
30
+
31
+ ```html
32
+ <script src="path/to/lineaui/dist/theme-init.js"></script>
33
+ ```
34
+
35
+ ## What's included
36
+
37
+ ### CSS
38
+
39
+ Five CSS files, each self-contained:
40
+
41
+ | File | Contents |
42
+ |------|----------|
43
+ | `dist/styles.css` | Everything: tokens, reset, base, layout, blocks, helpers, utilities |
44
+ | `dist/core.css` | Foundation only: tokens, reset, base, layout, helpers |
45
+ | `dist/blocks.css` | Component styles (requires layer order declaration) |
46
+ | `dist/utilities.css` | Utility classes (requires layer order declaration) |
47
+ | `dist/icons.css` | Icon classes (see Icons below) |
48
+
49
+ All styles are scoped to cascade layers in this order:
50
+
51
+ ```
52
+ reset → tokens → base → layout → blocks → helpers → utilities
53
+ ```
54
+
55
+ ### JavaScript
56
+
57
+ `dist/bundle.js` is an ESM bundle that auto-initializes interactive behaviors (dialogs, dropdowns, tooltips, tabs, toasts, galleries, and more) on `DOMContentLoaded` and observes the DOM for dynamically added elements.
58
+
59
+ ### Icons
60
+
61
+ The library includes its own SVG icon set (35 icons). Each icon is a 24 × 24 filled SVG embedded via CSS masks, so icons inherit `currentColor` and scale with `font-size`. Include `dist/icons.css` alongside your main stylesheet:
62
+
63
+ ```html
64
+ <link rel="stylesheet" href="path/to/lineaui/dist/icons.css">
65
+ ```
66
+
67
+ ```html
68
+ <i class="ln-i-chevron-down"></i>
69
+ <i class="ln-i-search"></i>
70
+ ```
71
+
72
+ `dist/icons-manifest.json` lists every available icon with its class name and SVG source. See the [icons guide](https://lineaui.com/foundation/icons) for the full set.
73
+
74
+ ### SCSS source
75
+
76
+ Import the SCSS source directly for custom builds:
77
+
78
+ ```scss
79
+ @use 'lineaui/scss' as *;
80
+ ```
81
+
82
+ Or import individual layers:
83
+
84
+ ```scss
85
+ @use 'lineaui/scss/tokens';
86
+ @use 'lineaui/scss/base';
87
+ @use 'lineaui/scss/blocks';
88
+ ```
89
+
90
+ ## Cascade layers
91
+
92
+ | Layer | Description |
93
+ |-------|-------------|
94
+ | `reset` | Normalize and box-sizing |
95
+ | `tokens` | Design tokens as CSS custom properties (color palette, spacing scale, type scale, elevation, motion, borders) |
96
+ | `base` | Element-level typography, forms, tables, code, media, interactive defaults |
97
+ | `layout` | Structural primitives: container, grid, shell, section, cluster |
98
+ | `blocks` | ~50 UI components from accordions to tooltips |
99
+ | `helpers` | Vertical rhythm, typographic helpers |
100
+ | `utilities` | Generated utility classes for spacing, flex, display, text, color, and more |
101
+
102
+ ## Development
103
+
104
+ ```bash
105
+ cd lineaui
106
+ npm install
107
+ npm run build # one-time build
108
+ npm run dev # watch mode
109
+ npm run lint # ESLint + Stylelint
110
+ ```
111
+
112
+ ## License
113
+
114
+ [MIT](LICENSE)
package/config.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "prefix": "ln-"
3
+ }