summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/layouts/_form.scss20
-rw-r--r--src/objects/_field-label.scss4
-rw-r--r--src/objects/_switch.scss6
-rw-r--r--tpl/objects/form.pug4
-rw-r--r--tpl/views/form.pug43
5 files changed, 39 insertions, 38 deletions
diff --git a/src/layouts/_form.scss b/src/layouts/_form.scss
index 9c741ec..f6b60ea 100644
--- a/src/layouts/_form.scss
+++ b/src/layouts/_form.scss
@@ -6,8 +6,8 @@
6@include iro.props-namespace('form') { 6@include iro.props-namespace('form') {
7 @include iro.props-store(( 7 @include iro.props-store((
8 --dims: ( 8 --dims: (
9 --item-spacing-y: fn.global-dim(--size --325), 9 --item-spacing-b: fn.global-dim(--size --325),
10 --label-spacing-x: fn.global-dim(--size --325), 10 --label-spacing-i: fn.global-dim(--size --325),
11 --hint-font-size: fn.global-dim(--font-size --75), 11 --hint-font-size: fn.global-dim(--font-size --75),
12 ), 12 ),
13 )); 13 ));
@@ -15,7 +15,7 @@
15 @include iro.bem-layout(iro.props-namespace()) { 15 @include iro.bem-layout(iro.props-namespace()) {
16 display: flex; 16 display: flex;
17 flex-direction: column; 17 flex-direction: column;
18 gap: fn.dim(--item-spacing-y) fn.dim(--label-spacing-x); 18 gap: fn.dim(--item-spacing-b) fn.dim(--label-spacing-i);
19 19
20 @include iro.bem-elem('item') { 20 @include iro.bem-elem('item') {
21 display: block; 21 display: block;
@@ -32,7 +32,7 @@
32 align-items: flex-end; 32 align-items: flex-end;
33 } 33 }
34 34
35 @include iro.bem-modifier('labels-left', 'labels-right') { 35 @include iro.bem-modifier('labels-start', 'labels-end') {
36 display: grid; 36 display: grid;
37 grid-template-columns: auto 1fr; 37 grid-template-columns: auto 1fr;
38 grid-template-rows: auto; 38 grid-template-rows: auto;
@@ -43,19 +43,19 @@
43 } 43 }
44 44
45 @include iro.bem-elem('item-label') { 45 @include iro.bem-elem('item-label') {
46 grid-column: 1; 46 grid-column: 1;
47 padding-right: 0; 47 padding-inline-end: 0;
48 } 48 }
49 49
50 @include iro.bem-elem('item-content') { 50 @include iro.bem-elem('item-content') {
51 grid-column: 2; 51 grid-column: 2;
52 margin-top: 0; 52 margin-block-start: 0;
53 } 53 }
54 } 54 }
55 55
56 @include iro.bem-modifier('labels-right') { 56 @include iro.bem-modifier('labels-end') {
57 @include iro.bem-elem('item-label') { 57 @include iro.bem-elem('item-label') {
58 text-align: right; 58 text-align: end;
59 } 59 }
60 } 60 }
61 } 61 }
diff --git a/src/objects/_field-label.scss b/src/objects/_field-label.scss
index 9f267cb..1518ea6 100644
--- a/src/objects/_field-label.scss
+++ b/src/objects/_field-label.scss
@@ -35,8 +35,8 @@
35 } 35 }
36 36
37 @include iro.bem-elem('content') { 37 @include iro.bem-elem('content') {
38 display: block; 38 display: block;
39 inline-size: 100%; 39 flex: 1 1 auto;
40 } 40 }
41 41
42 @include iro.bem-elem('hint') { 42 @include iro.bem-elem('hint') {
diff --git a/src/objects/_switch.scss b/src/objects/_switch.scss
index a67aa8d..e1f1132 100644
--- a/src/objects/_switch.scss
+++ b/src/objects/_switch.scss
@@ -16,17 +16,17 @@
16 --key-focus: ( 16 --key-focus: (
17 --border: fn.global-dim(--key-focus --border), 17 --border: fn.global-dim(--key-focus --border),
18 --border-offset: fn.global-dim(--key-focus --border-offset), 18 --border-offset: fn.global-dim(--key-focus --border-offset),
19 --outline: fn.global-dim(--key-focus --border), 19 --outline: fn.global-dim(--key-focus --outline),
20 ), 20 ),
21 ), 21 ),
22 --colors: ( 22 --colors: (
23 --track-bg: fn.global-color(--border), 23 --track-bg: fn.global-color(--border),
24 --handle-border: fn.global-color(--text-mute), 24 --handle-border: fn.global-color(--text-mute-more),
25 --handle-bg: fn.global-color(--base --50), 25 --handle-bg: fn.global-color(--base --50),
26 26
27 --hover: ( 27 --hover: (
28 --label: fn.global-color(--heading), 28 --label: fn.global-color(--heading),
29 --handle-border: fn.global-color(--text), 29 --handle-border: fn.global-color(--text-mute),
30 ), 30 ),
31 --accent: ( 31 --accent: (
32 --handle-border: fn.global-color(--accent --900), 32 --handle-border: fn.global-color(--accent --900),
diff --git a/tpl/objects/form.pug b/tpl/objects/form.pug
index 24ac3f0..cbb1758 100644
--- a/tpl/objects/form.pug
+++ b/tpl/objects/form.pug
@@ -3,8 +3,8 @@ include field-label.pug
3mixin form 3mixin form
4 form(class={ 4 form(class={
5 'l-form': true, 5 'l-form': true,
6 'l-form--labels-left': attributes.labelsAlign === 'left', 6 'l-form--labels-start': attributes.labelsAlign === 'start',
7 'l-form--labels-right': attributes.labelsAlign === 'right', 7 'l-form--labels-end': attributes.labelsAlign === 'end',
8 'l-form--labels-above': attributes.labelsAlign === 'above' 8 'l-form--labels-above': attributes.labelsAlign === 'above'
9 }) 9 })
10 block 10 block
diff --git a/tpl/views/form.pug b/tpl/views/form.pug
index 859e9a6..5b24757 100644
--- a/tpl/views/form.pug
+++ b/tpl/views/form.pug
@@ -1,29 +1,30 @@
1mixin view-form 1mixin view-form
2 +view('form', 'Form') 2 +view('form', 'Form')
3 .c-box 3 each align in ['above', 'start', 'end']
4 +form(labelsAlign="left") 4 .c-box
5 +form-item('Username') 5 +form(labelsAlign=align)
6 +text-field(placeholder='Example: Volpeon') 6 +form-item('Username')
7 +text-field(placeholder='Example: Volpeon')
7 8
8 +form-item('Password', 'At least 6 characters, all characters allowed') 9 +form-item('Password', 'At least 6 characters, all characters allowed')
9 +text-field(placeholder='Example: hunter2' type='password') 10 +text-field(placeholder='Example: hunter2' type='password')
10 11
11 +form-item('Bio') 12 +form-item('Bio')
12 +text-field(placeholder='Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam...') 13 +text-field(placeholder='Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam...')
13 14
14 +form-item('Favorite animal') 15 +form-item('Favorite animal')
15 +radio(name="form-demo-1" checked=true)= 'Foxes' 16 +radio(name="form-demo-1" checked=true)= 'Foxes'
16 +radio(name="form-demo-1")= 'Other' 17 +radio(name="form-demo-1")= 'Other'
17 18
18 +form-item('Notification settings') 19 +form-item('Notification settings')
19 +switch= 'In-app notifications' 20 +switch= 'In-app notifications'
20 br 21 br
21 +switch= 'Desktop notifications' 22 +switch= 'Desktop notifications'
22 br 23 br
23 +switch= 'Email notifications' 24 +switch= 'Email notifications'
24 25
25 +form-item('') 26 +form-item('')
26 +checkbox= 'I\'ve read and accept the terms and conditions' 27 +checkbox= 'I\'ve read and accept the terms and conditions'
27 28
28 +form-item('') 29 +form-item('')
29 +a-button(variant='primary')= 'Register' 30 +a-button(variant='primary')= 'Register'