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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25f7ed58266ba42853fdb266805b9f8daa8f69531bae482a13e5355e9868ba5e
4
- data.tar.gz: 4dcd71073bf9335ef288d849e0754d3104ee750f3f049a1369537a303af39db2
3
+ metadata.gz: cc3ae5046f628257f567d0091f79d21571fce6d511357bbe0569deb2a124d219
4
+ data.tar.gz: 11fd650054e679921f8e25f8c688fa8f6d87605c94b118a70a37e24f8494907a
5
5
  SHA512:
6
- metadata.gz: 32269b207610271eee8e2fd2c6aab706ac0c51b04d325f7e670543165ec13898ff6417e4ff966bd5bf2b3e85a692d73a7489eca18d34a873d1d7b77cf2d5ac6f
7
- data.tar.gz: 9db4d1270d00b1cde0b5c6f406585efb7aa6334ddcfb9a8a64f3f75d46e05c2b82e4d20bb1e8f3064fdb47b04c55ce7f423abaf0b0a306f608a129fb4c542872
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 text-foreground-muted
124
- whitespace-pre overflow-x-auto;
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
- background: transparent;
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-sm font-inter
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 text-sm
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
@@ -1,5 +1,5 @@
1
1
  module Layered
2
2
  module Ui
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
data/lib/layered/ui.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "tailwindcss-rails"
1
2
  require "layered/ui/version"
2
3
  require "layered/ui/engine"
3
4
 
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.0
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: 2026-03-31 00:00:00.000000000 Z
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: 3.5.11
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.