From 773efd0742a253ddb540f89dc08305d349d8a482 Mon Sep 17 00:00:00 2001 From: Kosta <68782786+KostaD02@users.noreply.github.com> Date: Wed, 30 Apr 2025 20:04:41 +0400 Subject: [PATCH 1/3] feat: button group --- scss/components/_index.scss | 4 +- scss/components/{ => button}/_button.scss | 2 +- scss/components/button/_group.scss | 59 +++++++ scss/components/button/_index.scss | 2 + stories/Introduction.mdx | 14 +- .../components/button-group/button-group.mdx | 35 ++++ .../button-group/button-group.stories.ts | 149 ++++++++++++++++++ stories/utilities/flex/flex.stories.ts | 9 +- 8 files changed, 263 insertions(+), 11 deletions(-) rename scss/components/{ => button}/_button.scss (98%) create mode 100644 scss/components/button/_group.scss create mode 100644 scss/components/button/_index.scss create mode 100644 stories/components/button-group/button-group.mdx create mode 100644 stories/components/button-group/button-group.stories.ts diff --git a/scss/components/_index.scss b/scss/components/_index.scss index 83fdbbe..551cc21 100644 --- a/scss/components/_index.scss +++ b/scss/components/_index.scss @@ -1,9 +1,9 @@ @use "./containers"; -@use "./button"; @use "./modal"; @use "./chips"; @use "./spinner"; @use "./breadcrumb"; @use "./card"; @use "./promo-card"; -@use "./form/index"; +@use "./button/index" as button; +@use "./form/index" as form; diff --git a/scss/components/_button.scss b/scss/components/button/_button.scss similarity index 98% rename from scss/components/_button.scss rename to scss/components/button/_button.scss index dbec5a2..058aece 100644 --- a/scss/components/_button.scss +++ b/scss/components/button/_button.scss @@ -1,5 +1,5 @@ @use "sass:map"; -@use "../variables/global" as *; +@use "../../variables/global" as *; .btn { --#{$prefix}btn-weight: 400; diff --git a/scss/components/button/_group.scss b/scss/components/button/_group.scss new file mode 100644 index 0000000..da29569 --- /dev/null +++ b/scss/components/button/_group.scss @@ -0,0 +1,59 @@ +@use "sass:map"; +@use "../../variables/global" as *; + +.btn-group { + --#{$prefix}btn-group-radius: var(--#{$prefix}border-radius); + + position: relative; + display: inline-flex; + vertical-align: middle; + border-radius: var(--#{$prefix}border-radius); + background-color: transparent; + + .btn { + position: relative; + flex: 1 1 auto; + border-radius: 0; + + &:first-child { + border-top-left-radius: var(--#{$prefix}btn-group-radius); + border-bottom-left-radius: var(--#{$prefix}btn-group-radius); + } + + &:last-child { + border-top-right-radius: var(--#{$prefix}btn-group-radius); + border-bottom-right-radius: var(--#{$prefix}btn-group-radius); + } + } + + &.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; + + .btn { + &:first-child { + border-radius: 0; + + border-top-left-radius: var(--#{$prefix}btn-group-radius); + border-top-right-radius: var(--#{$prefix}btn-group-radius); + } + + &:last-child { + border-radius: 0; + border-bottom-left-radius: var(--#{$prefix}btn-group-radius); + border-bottom-right-radius: var(--#{$prefix}btn-group-radius); + } + } + } +} + +@each $size, $styles in $button-sizes { + .btn-group-#{"" + $size} { + .btn { + --#{$prefix}btn-font-size: #{map.get($styles, font-size)}; + --#{$prefix}btn-padding-x: #{map.get($styles, padding-x)}; + --#{$prefix}btn-padding-y: #{map.get($styles, padding-y)}; + } + } +} diff --git a/scss/components/button/_index.scss b/scss/components/button/_index.scss new file mode 100644 index 0000000..ae15a7c --- /dev/null +++ b/scss/components/button/_index.scss @@ -0,0 +1,2 @@ +@use "./button"; +@use "./group"; diff --git a/stories/Introduction.mdx b/stories/Introduction.mdx index f12133e..b7bd87c 100644 --- a/stories/Introduction.mdx +++ b/stories/Introduction.mdx @@ -1,10 +1,12 @@ import Logo from './assets/logo.png'; -
- Educata's styling package. The [project code](https://github.com/educata/educata-style) is - licensed under the [MIT License](https://github.com/educata/educata-style/blob/main/LICENSE). -
\ No newline at end of file ++ Educata's styling package. The [project code](https://github.com/educata/educata-style) is + licensed under the [MIT License](https://github.com/educata/educata-style/blob/main/LICENSE). +
+