layered-ui-rails 0.2.0 → 0.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/README.md +2 -0
- data/app/assets/tailwind/layered/ui/styles.css +59 -19
- data/lib/generators/layered/ui/create_overrides_generator.rb +17 -0
- data/lib/layered/ui/version.rb +1 -1
- data/lib/layered/ui.rb +1 -0
- metadata +17 -19
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cc3ae5046f628257f567d0091f79d21571fce6d511357bbe0569deb2a124d219
|
|
4
|
+
data.tar.gz: 11fd650054e679921f8e25f8c688fa8f6d87605c94b118a70a37e24f8494907a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cd23b2dc4c6686d2af8922bb10333ca4d7b8210ca6d7f1cc3ec03c162b246dbc960203ee4751c01d6d8d06e90f8f0dd214fa445bfe58eb7a3b35bf646485a0ff
|
|
7
|
+
data.tar.gz: 43177db0adfbe3aae755e6efdea98ede80b14400f9c36162f3eaeef9d0dfec48c4b3a85e5cd4c287776dab3a8750d88e73612a48ca462438f6799c7d21103408
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. This project follows [Semantic Versioning](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [0.2.2] - 2026-04-03
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Collapsible surface variants (`.l-ui-surface--collapsible`, `.l-ui-surface--collapsible-active`) using native `<details>`/`<summary>` for WCAG 2.2 AA accessible disclosure
|
|
10
|
+
- `.l-ui-surface--sm` compact surface variant with smaller padding and summary text
|
|
11
|
+
- `h4` base style (Manrope bold, `text-sm`)
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Form inputs now use 16px (`text-base`) font size by default, preventing Safari auto-zoom on iOS without relying on a `!important` hack
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- CSS `@apply` ordering now follows the documented convention (layout, spacing, typography, colours, effects) in `code`, `tabs__tab`, and `l-ui-scroll-to-bottom`
|
|
20
|
+
|
|
21
|
+
## [0.2.1] - 2026-04-01
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- `tailwindcss-rails` promoted from development dependency to runtime dependency
|
|
26
|
+
- `layered:ui:create_overrides` generator Tier 3 section now includes commented examples for `.l-ui-header__logo` and `.l-ui-header__icon` size overrides
|
|
27
|
+
- Documentation for logo and icon styling overrides, pointing to `layered_ui_overrides.css`
|
|
28
|
+
|
|
5
29
|
## [0.2.0] - 2026-03-31
|
|
6
30
|
|
|
7
31
|
### Added
|
data/README.md
CHANGED
|
@@ -139,6 +139,8 @@ For per-request logos (e.g. per-tenant branding), use `content_for` because the
|
|
|
139
139
|
<% end %>
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
+
To adjust the size of the logo or header icon, override `.l-ui-header__logo` or `.l-ui-header__icon` in `layered_ui_overrides.css` (created by `bin/rails generate layered:ui:create_overrides`). Commented examples are included in the Tier 3 section of that file.
|
|
143
|
+
|
|
142
144
|
For per-request icons, set instance variables - the engine renders `<link>` and `<img>` tags that only need a URL to vary:
|
|
143
145
|
|
|
144
146
|
```ruby
|
|
@@ -102,6 +102,10 @@
|
|
|
102
102
|
@apply heading;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
h4 {
|
|
106
|
+
@apply heading text-sm;
|
|
107
|
+
}
|
|
108
|
+
|
|
105
109
|
p {
|
|
106
110
|
@apply mt-0
|
|
107
111
|
text-sm text-foreground-muted leading-relaxed;
|
|
@@ -120,8 +124,8 @@
|
|
|
120
124
|
code {
|
|
121
125
|
font-size: 0.8125rem;
|
|
122
126
|
line-height: 1.25rem;
|
|
123
|
-
@apply
|
|
124
|
-
|
|
127
|
+
@apply whitespace-pre overflow-x-auto
|
|
128
|
+
text-foreground-muted;
|
|
125
129
|
}
|
|
126
130
|
}
|
|
127
131
|
|
|
@@ -809,7 +813,7 @@ pre.l-ui-surface {
|
|
|
809
813
|
@apply m-0 overflow-auto;
|
|
810
814
|
|
|
811
815
|
> code {
|
|
812
|
-
|
|
816
|
+
@apply bg-transparent;
|
|
813
817
|
}
|
|
814
818
|
}
|
|
815
819
|
|
|
@@ -818,6 +822,53 @@ pre.l-ui-surface {
|
|
|
818
822
|
bg-surface-active;
|
|
819
823
|
}
|
|
820
824
|
|
|
825
|
+
.l-ui-surface--collapsible {
|
|
826
|
+
@apply surface
|
|
827
|
+
bg-surface;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
.l-ui-surface--collapsible-active {
|
|
831
|
+
@apply surface
|
|
832
|
+
bg-surface-active;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
.l-ui-surface--collapsible,
|
|
836
|
+
.l-ui-surface--collapsible-active {
|
|
837
|
+
&[open] > .l-ui-surface__summary .l-ui-surface__chevron {
|
|
838
|
+
@apply rotate-90;
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
.l-ui-surface--sm {
|
|
843
|
+
@apply p-3;
|
|
844
|
+
|
|
845
|
+
.l-ui-surface__summary {
|
|
846
|
+
@apply text-sm font-semibold;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
.l-ui-surface__content {
|
|
850
|
+
@apply pt-3;
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
.l-ui-surface__summary {
|
|
855
|
+
@apply flex items-center justify-between
|
|
856
|
+
font-bold
|
|
857
|
+
list-none cursor-pointer focus-ring;
|
|
858
|
+
|
|
859
|
+
&::-webkit-details-marker {
|
|
860
|
+
display: none;
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
.l-ui-surface__chevron {
|
|
865
|
+
@apply transition-transform duration-200;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
.l-ui-surface__content {
|
|
869
|
+
@apply pt-4;
|
|
870
|
+
}
|
|
871
|
+
|
|
821
872
|
/* Form */
|
|
822
873
|
|
|
823
874
|
.l-ui-form {
|
|
@@ -856,7 +907,7 @@ pre.l-ui-surface {
|
|
|
856
907
|
@utility form__field {
|
|
857
908
|
@apply block
|
|
858
909
|
w-full px-3 py-2.5 min-h-[44px]
|
|
859
|
-
text-
|
|
910
|
+
text-base font-inter
|
|
860
911
|
text-foreground
|
|
861
912
|
border border-border-control rounded-sm
|
|
862
913
|
focus-ring;
|
|
@@ -868,8 +919,7 @@ pre.l-ui-surface {
|
|
|
868
919
|
}
|
|
869
920
|
|
|
870
921
|
.field_with_errors .l-ui-form__field {
|
|
871
|
-
@apply
|
|
872
|
-
border-2 border-error-bg bg-error-bg/10;
|
|
922
|
+
@apply border-2 border-error-bg bg-error-bg/10;
|
|
873
923
|
}
|
|
874
924
|
|
|
875
925
|
.l-ui-form__field-error {
|
|
@@ -997,11 +1047,10 @@ pre.l-ui-surface {
|
|
|
997
1047
|
}
|
|
998
1048
|
|
|
999
1049
|
@utility tabs__tab {
|
|
1000
|
-
@apply min-h-[44px]
|
|
1050
|
+
@apply -mb-px min-h-[44px]
|
|
1001
1051
|
text-sm font-medium
|
|
1002
1052
|
text-foreground-muted
|
|
1003
1053
|
border-b-2 border-transparent
|
|
1004
|
-
-mb-px
|
|
1005
1054
|
cursor-pointer
|
|
1006
1055
|
focus-ring
|
|
1007
1056
|
transition-colors;
|
|
@@ -1503,10 +1552,8 @@ pre.l-ui-surface {
|
|
|
1503
1552
|
|
|
1504
1553
|
.l-ui-scroll-to-bottom {
|
|
1505
1554
|
@apply
|
|
1506
|
-
sticky bottom-2
|
|
1507
|
-
mx-auto -mt-9
|
|
1508
|
-
flex items-center justify-center
|
|
1509
|
-
h-9 w-9
|
|
1555
|
+
sticky bottom-2 flex items-center justify-center
|
|
1556
|
+
mx-auto -mt-9 h-9 w-9
|
|
1510
1557
|
rounded-full
|
|
1511
1558
|
cursor-pointer
|
|
1512
1559
|
bg-button-primary-bg/60 text-button-primary-text shadow-lg backdrop-blur-xs
|
|
@@ -1594,13 +1641,6 @@ pre.l-ui-surface {
|
|
|
1594
1641
|
|
|
1595
1642
|
/* Safari */
|
|
1596
1643
|
@media (max-width: 767px) {
|
|
1597
|
-
/* Prevent Safari auto-zoom on input focus */
|
|
1598
|
-
input,
|
|
1599
|
-
textarea,
|
|
1600
|
-
select {
|
|
1601
|
-
font-size: 16px !important;
|
|
1602
|
-
}
|
|
1603
|
-
|
|
1604
1644
|
/* iOS Safari ignores overflow:hidden on body; position:fixed is required */
|
|
1605
1645
|
.l-ui-scroll-lock {
|
|
1606
1646
|
position: fixed;
|
|
@@ -100,6 +100,23 @@ module Layered
|
|
|
100
100
|
--backdrop: 0 0% 0%;
|
|
101
101
|
}
|
|
102
102
|
*/
|
|
103
|
+
|
|
104
|
+
/* ----------------------------------------------------------------
|
|
105
|
+
* Tier 3 - Component overrides
|
|
106
|
+
*
|
|
107
|
+
* Override individual component styles. Uncomment and adjust as needed.
|
|
108
|
+
* Examples: adjust logo or icon height to suit your brand images.
|
|
109
|
+
* ---------------------------------------------------------------- */
|
|
110
|
+
|
|
111
|
+
/*
|
|
112
|
+
.l-ui-header__logo {
|
|
113
|
+
@apply h-7.5 w-auto;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.l-ui-header__icon {
|
|
117
|
+
@apply h-7.5 w-auto;
|
|
118
|
+
}
|
|
119
|
+
*/
|
|
103
120
|
CSS
|
|
104
121
|
end
|
|
105
122
|
end
|
data/lib/layered/ui/version.rb
CHANGED
data/lib/layered/ui.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: layered-ui-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- layered.ai
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rails
|
|
@@ -24,6 +23,20 @@ dependencies:
|
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: '8.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: tailwindcss-rails
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '4.0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '4.0'
|
|
27
40
|
- !ruby/object:Gem::Dependency
|
|
28
41
|
name: devise
|
|
29
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,20 +135,6 @@ dependencies:
|
|
|
122
135
|
- - "~>"
|
|
123
136
|
- !ruby/object:Gem::Version
|
|
124
137
|
version: '1.0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: tailwindcss-rails
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '4.0'
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '4.0'
|
|
139
138
|
- !ruby/object:Gem::Dependency
|
|
140
139
|
name: turbo-rails
|
|
141
140
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -265,8 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
265
264
|
- !ruby/object:Gem::Version
|
|
266
265
|
version: '0'
|
|
267
266
|
requirements: []
|
|
268
|
-
rubygems_version:
|
|
269
|
-
signing_key:
|
|
267
|
+
rubygems_version: 4.0.6
|
|
270
268
|
specification_version: 4
|
|
271
269
|
summary: Open source, minimalist, responsive, accessible UI system with light and
|
|
272
270
|
dark theme support.
|