From 754ef21f0e3c79eab141ecfd62f10504cb843477 Mon Sep 17 00:00:00 2001 From: Maximilian Franzke Date: Fri, 30 Sep 2022 09:08:49 +0200 Subject: [PATCH 01/30] refactor: added sizes and restyling --- .../01-elements/checkbox/checkbox-sizes.hbs | 6 ++ .../01-elements/checkbox/checkbox-sizes.json | 18 ++++++ .../01-elements/checkbox/checkbox.hbs | 9 +-- .../01-elements/checkbox/checkbox.scss | 55 +++++++++++++++++-- 4 files changed, 79 insertions(+), 9 deletions(-) create mode 100644 source/_patterns/01-elements/checkbox/checkbox-sizes.hbs create mode 100644 source/_patterns/01-elements/checkbox/checkbox-sizes.json diff --git a/source/_patterns/01-elements/checkbox/checkbox-sizes.hbs b/source/_patterns/01-elements/checkbox/checkbox-sizes.hbs new file mode 100644 index 00000000000..e20439501e6 --- /dev/null +++ b/source/_patterns/01-elements/checkbox/checkbox-sizes.hbs @@ -0,0 +1,6 @@ +{{#each sizes }} +

{{ label }}

+

+ {{> elements-checkbox id=../id }} +

+{{/each }} diff --git a/source/_patterns/01-elements/checkbox/checkbox-sizes.json b/source/_patterns/01-elements/checkbox/checkbox-sizes.json new file mode 100644 index 00000000000..4fe2b47b95e --- /dev/null +++ b/source/_patterns/01-elements/checkbox/checkbox-sizes.json @@ -0,0 +1,18 @@ +{ + "sizes": [ + { + "size": "small", + "label": "Small" + }, + { + "size": "medium", + "label": "Medium (default, data-size attribute is optional)" + }, + { + "size": "large", + "label": "Large" + } + ], + "id": "checkbox05", + "label": "Checkbox" +} diff --git a/source/_patterns/01-elements/checkbox/checkbox.hbs b/source/_patterns/01-elements/checkbox/checkbox.hbs index 0fd79520b0f..13e65713cf1 100644 --- a/source/_patterns/01-elements/checkbox/checkbox.hbs +++ b/source/_patterns/01-elements/checkbox/checkbox.hbs @@ -1,12 +1,13 @@ - + {{#if describedbyid }} aria-describedby="{{ describedbyid }}"{{/if }} + {{#if size }} data-size="{{ size }}"{{/if }}> + {{#if indeterminate}} {{/if }} diff --git a/source/_patterns/01-elements/checkbox/checkbox.scss b/source/_patterns/01-elements/checkbox/checkbox.scss index d4d770a23ef..e9106910e99 100644 --- a/source/_patterns/01-elements/checkbox/checkbox.scss +++ b/source/_patterns/01-elements/checkbox/checkbox.scss @@ -4,18 +4,25 @@ @import "checkbox.variables"; .elm-checkbox { - @include icon("\00A0", 24, "outline", $partial: $partial); + // $checkbox-size: 16; + // TODO: Replace this ugly hack as soon as we've got this as an icon font as well + $checkbox-size: 20; + &:before { + font-size: 16px; + } + + @include icon("\00A0", $checkbox-size, "outline", $partial: $partial); appearance: none; background-color: $checkbox---backgroundColor; border: #{to-rem($pxValue: 1)} solid $checkbox---borderColor; - border-radius: 4px; + border-radius: 2.5px; color: $checkbox---color; - height: to-rem($pxValue: 24); + height: to-rem($pxValue: $checkbox-size); &[type="checkbox"] { - vertical-align: top; + vertical-align: middle; } - width: to-rem($pxValue: 24); + width: to-rem($pxValue: $checkbox-size); display: inline-flex; justify-content: center; @@ -64,5 +71,43 @@ & + label { margin-left: $db-spacing-xs; + + font-size: to-rem($pxValue: 12); + } + + // Sizes + &%size-Small { + $checkbox-size: 16; + // TODO: Replace this ugly hack as soon as we've got this as an icon font as well + &:before { + font-size: 16px; + } + + height: to-rem($pxValue: $checkbox-size); + width: to-rem($pxValue: $checkbox-size); + // TODO: Replace this ugly hack as soon as we've got this as an icon font as well + // @include iconMeta($checkbox-size); + @include iconMeta(20); + } + &%size-Large { + $checkbox-size: 24; + &:before { + font-size: 24px; + } + + height: to-rem($pxValue: $checkbox-size); + width: to-rem($pxValue: $checkbox-size); + @include iconMeta($checkbox-size); + + & + label { + font-size: to-rem($pxValue: 16); + } + } + + &[data-size="small"] { + @extend %size-Small; + } + &[data-size="large"] { + @extend %size-Large; } } From 24c247ebf38b3daf680374e89bc5b4754f2403c1 Mon Sep 17 00:00:00 2001 From: Maximilian Franzke Date: Fri, 30 Sep 2022 09:11:04 +0200 Subject: [PATCH 02/30] docs(checkbox): added sizes documentation --- .../01-elements/checkbox/_checkbox.md | 18 ++++++++++++++++++ .../_patterns/01-elements/checkbox/checkbox.md | 6 ------ 2 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 source/_patterns/01-elements/checkbox/_checkbox.md delete mode 100644 source/_patterns/01-elements/checkbox/checkbox.md diff --git a/source/_patterns/01-elements/checkbox/_checkbox.md b/source/_patterns/01-elements/checkbox/_checkbox.md new file mode 100644 index 00000000000..e8cf9031ac6 --- /dev/null +++ b/source/_patterns/01-elements/checkbox/_checkbox.md @@ -0,0 +1,18 @@ +--- +title: Checkbox +state: inevaluation +--- + +## Variations/configurability + +### Size + +#### SCSS (recommended) + +Extend one of the size SCSS placeholders in case that you don't want the default (medium): `%size-Small` or `%size-Large` + +#### HTML attribute + +You could set the different button sizes via the `data-size` attribute, the default is "medium" and in that case is optional. + +[inspirational sources for this page]: # "https://www.uiguideline.com/components/checkbox" diff --git a/source/_patterns/01-elements/checkbox/checkbox.md b/source/_patterns/01-elements/checkbox/checkbox.md deleted file mode 100644 index 7b3ec8b057d..00000000000 --- a/source/_patterns/01-elements/checkbox/checkbox.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Checkbox -state: complete ---- - -[inspirational sources for this page]: # "https://www.uiguideline.com/components/checkbox" From b4cc4b63e4dc4fbf13411c7c311d18808a62affe Mon Sep 17 00:00:00 2001 From: Maximilian Franzke Date: Mon, 3 Oct 2022 23:08:59 +0200 Subject: [PATCH 03/30] feat(checkbox): added required states styles --- source/_patterns/01-elements/checkbox/checkbox.hbs | 3 ++- source/_patterns/01-elements/checkbox/checkbox.scss | 8 ++++++++ .../_patterns/01-elements/checkbox/checkbox~required.json | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 source/_patterns/01-elements/checkbox/checkbox~required.json diff --git a/source/_patterns/01-elements/checkbox/checkbox.hbs b/source/_patterns/01-elements/checkbox/checkbox.hbs index 13e65713cf1..23c49c7a64d 100644 --- a/source/_patterns/01-elements/checkbox/checkbox.hbs +++ b/source/_patterns/01-elements/checkbox/checkbox.hbs @@ -4,7 +4,8 @@ {{#if disabled}} disabled{{/if }} value="{{ value }}" {{#if describedbyid }} aria-describedby="{{ describedbyid }}"{{/if }} - {{#if size }} data-size="{{ size }}"{{/if }}> + {{#if size }} data-size="{{ size }}"{{/if }} + {{#if required }} required{{/if }}> {{#if indeterminate}}