diff --git a/packages/styles/components/_c.flag.scss b/packages/styles/components/_c.flag.scss index 717ea0fa0..f91a9f0e9 100644 --- a/packages/styles/components/_c.flag.scss +++ b/packages/styles/components/_c.flag.scss @@ -1,22 +1,18 @@ /* mqp:start */ .mc-flag { - @include set-flag-base(); - @include set-font-face('semi-bold'); - @include set-font-scale('04', 's'); - @include set-flag-theme(get-token(color, flag, 'solid')); + $parent: get-parent-selector(&); + + @include set-flag-base($parent); + @include set-font-face("semi-bold"); + @include set-flag-theme($parent, get-token(color, flag, "solid")); @each $name, $props in $flags { - @if ($name != 'solid') { + @if ($name != "solid") { &--#{$name} { - @include set-flag-theme($props); + @include set-flag-theme($parent, $props); } } } - - &--extend { - flex-shrink: 1; - height: auto; - } } /* mqp:end */ diff --git a/packages/styles/settings-tools/_s.flags.scss b/packages/styles/settings-tools/_s.flags.scss index d2510297a..7459a9d47 100644 --- a/packages/styles/settings-tools/_s.flags.scss +++ b/packages/styles/settings-tools/_s.flags.scss @@ -1,31 +1,36 @@ $flags: get-token(color, flag); -$flag-border: get-border('s'); +$flag-border: get-border("s"); -@mixin set-flag-base { - border: $flag-border solid transparent; - display: inline-flex; - align-items: center; - padding: 0 $mu050; +@mixin set-flag-base($parent) { + display: inline-block; + font-size: get-token(size, font, "04"); margin: 0; vertical-align: middle; - min-height: 1.375rem; - flex-shrink: 0; + // custom line-height to ensure the multi-line behaviour is done in the right conditions + line-height: 1.786; - /* ie11 hack to center vertically */ + @at-root #{$parent}__label { + @include set-line-height("04", "s"); - /* see : https://github.com/philipwalton/flexbugs/issues/231 */ - height: 0; + border: $flag-border solid transparent; + box-decoration-break: clone; + padding: $mu025 $mu050; + } } -@mixin set-flag-theme($props) { - color: map-get($props, 'text'); +@mixin set-flag-theme($parent, $props) { + #{$parent} { + &__label { + color: map-get($props, "text"); - @if map-has-key($props, 'border') { - border-color: map-get($props, 'border'); - } + @if map-has-key($props, "border") { + border-color: map-get($props, "border"); + } - @if map-has-key($props, 'background') { - background-color: map-get($props, 'background'); + @if map-has-key($props, "background") { + background-color: map-get($props, "background"); + } + } } } diff --git a/src/docs/Components/Flags/code.mdx b/src/docs/Components/Flags/code.mdx index e6e26d35f..bfaaf4eab 100644 --- a/src/docs/Components/Flags/code.mdx +++ b/src/docs/Components/Flags/code.mdx @@ -14,13 +14,13 @@ Import the settings and the flag `scss` files. ## Basic usage -To create a flag you have one main class to apply `mc-flag`, and wrap the text inside the flag in a `span.mc-flag__label`. While the text without span will look mostly fine, we use it to opticaly align the characters baseline in the flag. +The creation of a **Flag** component in your code is done using the following HTML structure: ```html
Flag label
``` - + ## Variations @@ -47,23 +47,11 @@ example : #### Solid - + #### Bordered - - -### Multi-line flag - - - -By default, the flag component can't extend over several lines. - -Indeed, as indicated in the [Do's and Dont's](/Components/Flags/#dos-and-donts) section of the documentation, it is not allowed to use too long text inside your flag. - - - -However in rare exceptions where you don't have the possibility to make your content fit on a single line we provide you with the `mc-flag--extend` modifier which allows you to get a multi-line flag. + ## Customization and mixins diff --git a/src/docs/Components/Flags/previews/flag-bordered.preview.html b/src/docs/Components/Flags/previews/bordered.preview.html similarity index 96% rename from src/docs/Components/Flags/previews/flag-bordered.preview.html rename to src/docs/Components/Flags/previews/bordered.preview.html index f5d3199ba..af4aeea31 100644 --- a/src/docs/Components/Flags/previews/flag-bordered.preview.html +++ b/src/docs/Components/Flags/previews/bordered.preview.html @@ -1,17 +1,17 @@ -
-
-
Flag bordered
-
- -
-
Flag bordered dark
-
- -
-
Flag bordered light
-
- -
-
Flag bordered danger
-
-
+
+
+
Flag bordered
+
+ +
+
Flag bordered dark
+
+ +
+
Flag bordered light
+
+ +
+
Flag bordered danger
+
+
diff --git a/src/docs/Components/Flags/previews/flag-bordered.preview.scss b/src/docs/Components/Flags/previews/bordered.preview.scss similarity index 100% rename from src/docs/Components/Flags/previews/flag-bordered.preview.scss rename to src/docs/Components/Flags/previews/bordered.preview.scss diff --git a/src/docs/Components/Flags/previews/default.preview.html b/src/docs/Components/Flags/previews/default.preview.html new file mode 100644 index 000000000..7b6dd6906 --- /dev/null +++ b/src/docs/Components/Flags/previews/default.preview.html @@ -0,0 +1,13 @@ +
+
+
+ Flag label +
+
+ +
+
+ This is a flag with a very long label +
+
+
diff --git a/src/docs/Components/Flags/previews/default.preview.scss b/src/docs/Components/Flags/previews/default.preview.scss new file mode 100644 index 000000000..b6ee05d6c --- /dev/null +++ b/src/docs/Components/Flags/previews/default.preview.scss @@ -0,0 +1,15 @@ +@import "settings-tools/_all-settings"; + +@include import-font-families(); + +@import "components/_c.flag"; + +.example { + margin: $mu100 auto; + padding: 0 $mu150; + + &__item { + margin: $mu100; + max-width: $mu1000; + } +} diff --git a/src/docs/Components/Flags/previews/flag-all.preview.html b/src/docs/Components/Flags/previews/flag-all.preview.html index 7c9179628..329e0ef99 100644 --- a/src/docs/Components/Flags/previews/flag-all.preview.html +++ b/src/docs/Components/Flags/previews/flag-all.preview.html @@ -1,25 +1,25 @@ -
-
-
Flag solid
- -
Flag bordered
-
- -
-
Flag solid dark
- -
Flag bordered dark
-
- -
-
Flag solid light
- -
Flag bordered light
-
- -
-
Flag solid danger
- -
Flag bordered danger
-
-
+
+
+
Flag solid
+ +
Flag bordered
+
+ +
+
Flag solid dark
+ +
Flag bordered dark
+
+ +
+
Flag solid light
+ +
Flag bordered light
+
+ +
+
Flag solid danger
+ +
Flag bordered danger
+
+
diff --git a/src/docs/Components/Flags/previews/flag-basic.preview.html b/src/docs/Components/Flags/previews/flag-basic.preview.html deleted file mode 100644 index 901621b75..000000000 --- a/src/docs/Components/Flags/previews/flag-basic.preview.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
-
- Flag solid -
- -
- Flag bordered -
-
-
diff --git a/src/docs/Components/Flags/previews/flag-basic.preview.scss b/src/docs/Components/Flags/previews/flag-basic.preview.scss deleted file mode 100644 index 3da51f2c8..000000000 --- a/src/docs/Components/Flags/previews/flag-basic.preview.scss +++ /dev/null @@ -1,23 +0,0 @@ -@import "settings-tools/all-settings"; -@include import-font-families(); -@import "components/c.flag"; - -.example { - align-items: flex-start; - display: flex; - flex-direction: column; - justify-content: space-around; - - &__item { - margin: $mu100; - - &--light { - background: $color-grey-999; - padding: $mu100; - } - } -} - -.mc-flag:first-child { - margin-right: $mu250; -} diff --git a/src/docs/Components/Flags/previews/flag-default.preview.html b/src/docs/Components/Flags/previews/flag-default.preview.html deleted file mode 100644 index 78576f074..000000000 --- a/src/docs/Components/Flags/previews/flag-default.preview.html +++ /dev/null @@ -1,5 +0,0 @@ -
-
- Flag label -
-
diff --git a/src/docs/Components/Flags/previews/flag-default.preview.scss b/src/docs/Components/Flags/previews/flag-default.preview.scss deleted file mode 100644 index 672a9751a..000000000 --- a/src/docs/Components/Flags/previews/flag-default.preview.scss +++ /dev/null @@ -1,8 +0,0 @@ -@import "settings-tools/all-settings"; -@include import-font-families(); -@import "components/c.flag"; - -.example { - margin: $mu100 auto; - padding: 0 $mu150; -} diff --git a/src/docs/Components/Flags/previews/flag-solid.preview.html b/src/docs/Components/Flags/previews/solid.preview.html similarity index 96% rename from src/docs/Components/Flags/previews/flag-solid.preview.html rename to src/docs/Components/Flags/previews/solid.preview.html index 4b3808886..b5346c6ee 100644 --- a/src/docs/Components/Flags/previews/flag-solid.preview.html +++ b/src/docs/Components/Flags/previews/solid.preview.html @@ -1,17 +1,17 @@ -
-
-
Flag solid
-
- -
-
Flag solid dark
-
- -
-
Flag solid light
-
- -
-
Flag solid danger
-
-
+
+
+
Flag solid
+
+ +
+
Flag solid dark
+
+ +
+
Flag solid light
+
+ +
+
Flag solid danger
+
+
diff --git a/src/docs/Components/Flags/previews/flag-solid.preview.scss b/src/docs/Components/Flags/previews/solid.preview.scss similarity index 100% rename from src/docs/Components/Flags/previews/flag-solid.preview.scss rename to src/docs/Components/Flags/previews/solid.preview.scss