diff options
| -rw-r--r-- | src/layouts/_form.scss | 20 | ||||
| -rw-r--r-- | src/objects/_field-label.scss | 4 | ||||
| -rw-r--r-- | src/objects/_switch.scss | 6 | ||||
| -rw-r--r-- | tpl/objects/form.pug | 4 | ||||
| -rw-r--r-- | tpl/views/form.pug | 43 |
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 | |||
| 3 | mixin form | 3 | mixin 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 @@ | |||
| 1 | mixin view-form | 1 | mixin 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' |
