layered-ui-rails 0.2.1 → 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: 7a003a0587e54bd4fbe0c90372457e5e08d008c4b4a36e3757574fea3e683f89
4
- data.tar.gz: 47ba6b7105c1edb3c65fde860452847f701acfd2d54fc01362e007d958db228c
3
+ metadata.gz: cc3ae5046f628257f567d0091f79d21571fce6d511357bbe0569deb2a124d219
4
+ data.tar.gz: 11fd650054e679921f8e25f8c688fa8f6d87605c94b118a70a37e24f8494907a
5
5
  SHA512:
6
- metadata.gz: 1629e9ed5175072c80216c2d3d836df2d943ce87a450d07202eae959b477e8733e614ae51b8cdfcd25e648a3b3a2c84b87f6f48a2e3243a666673ca356e41073
7
- data.tar.gz: 4bd348628ba07db55292296050018f60c040ff906a65624295c773def442d25dd881cd5df35462dad2093e2d287d302a00649828b92e92a11c021cc5488214a5
6
+ metadata.gz: cd23b2dc4c6686d2af8922bb10333ca4d7b8210ca6d7f1cc3ec03c162b246dbc960203ee4751c01d6d8d06e90f8f0dd214fa445bfe58eb7a3b35bf646485a0ff
7
+ data.tar.gz: 43177db0adfbe3aae755e6efdea98ede80b14400f9c36162f3eaeef9d0dfec48c4b3a85e5cd4c287776dab3a8750d88e73612a48ca462438f6799c7d21103408
data/CHANGELOG.md CHANGED
@@ -2,7 +2,21 @@
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
- ## [Unreleased]
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`
6
20
 
7
21
  ## [0.2.1] - 2026-04-01
8
22
 
@@ -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
 
@@ -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;
@@ -1,5 +1,5 @@
1
1
  module Layered
2
2
  module Ui
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: layered-ui-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - layered.ai