Allow specifying alignment for ButtonGroup.

This commit is contained in:
baldo 2022-08-23 15:11:09 +02:00
parent 4db53af7ce
commit 5ae27f530e
4 changed files with 33 additions and 5 deletions

View file

@ -1,15 +1,16 @@
<script setup lang="ts">
import type {ButtonSize} from "@/types";
import type {ButtonSize, ComponentAlignment} from "@/types";
interface Props {
buttonSize: ButtonSize;
align: ComponentAlignment;
}
const props = defineProps<Props>()
</script>
<template>
<div :class="['button-group', buttonSize]">
<div :class="['button-group', buttonSize, align]">
<slot></slot>
</div>
</template>
@ -20,8 +21,17 @@ const props = defineProps<Props>()
.button-group {
display: flex;
justify-content: center;
flex-wrap: wrap;
margin: {
left: -$button-margin;
right: -$button-margin;
}
@each $align in (left, center, right) {
&.#{$align} {
justify-content: $align;
}
}
button {
margin: $button-margin;
@ -32,15 +42,22 @@ const props = defineProps<Props>()
.button-group {
flex-direction: column;
margin: {
left: 0;
right: 0;
}
button {
margin: $button-margin 0;
width: 100%;
}
}
}
@include page-breakpoint(smaller) {
.button-group {
align-items: center;
button {
flex-grow: 1;
max-width: 80%;

View file

@ -11,6 +11,7 @@ $white: #ffffff;
// Colors
$variant-colors: (
primary: #e5287a,
secondary: $gray-light,
success: #4ba74b,
warning: #fdbc41,
danger: #ef5652,
@ -18,6 +19,7 @@ $variant-colors: (
);
$variant-text-colors: (
primary: $black,
secondary: $black,
success: $black,
warning: $black,
danger: $black,
@ -25,6 +27,7 @@ $variant-text-colors: (
);
$variant-color-primary: map-get($variant-colors, primary);
$variant-color-secondary: map-get($variant-colors, secondary);
$variant-color-success: map-get($variant-colors, success);
$variant-color-warning: map-get($variant-colors, warning);
$variant-color-danger: map-get($variant-colors, danger);

View file

@ -6,8 +6,15 @@ export enum ButtonSize {
LARGE = "large",
}
export enum ComponentAlignment {
LEFT = "left",
CENTER = "center",
RIGHT = "right",
}
export enum ComponentVariant {
PRIMARY = "primary",
SECONDARY = "secondary",
SUCCESS = "success",
WARNING = "warning",
DANGER = "danger",

View file

@ -2,7 +2,8 @@
import ActionButton from "@/components/form/ActionButton.vue";
import ButtonGroup from "@/components/form/ButtonGroup.vue";
import PageContainer from "@/components/page/PageContainer.vue";
import {ButtonSize, ComponentVariant} from "@/types";</script>
import {ButtonSize, ComponentAlignment, ComponentVariant} from "@/types";
</script>
<template>
<PageContainer>
@ -12,7 +13,7 @@ import {ButtonSize, ComponentVariant} from "@/types";</script>
Knoten in Betrieb und möchtest seine Daten ändern? Oder Du möchtest einen Knoten, der nicht mehr in Betrieb
ist löschen? Dann bist Du hier richtig!</p>
<ButtonGroup :button-size="ButtonSize.LARGE">
<ButtonGroup class="actions" :align="ComponentAlignment.CENTER" :button-size="ButtonSize.LARGE">
<ActionButton
:variant="ComponentVariant.INFO"
:size="ButtonSize.LARGE"