diff --git a/CHANGELOG b/CHANGELOG index a378eb5..8e909c4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,9 +5,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [Released] -## [0.3.0] - 2023-03-27 +## [0.4.0] - 2023-04-29 + +### Changed + +- Generalized button states + +### Added + +- Buttons in system colors +- Progress bars + - Default color + - Primary color + - Accent color + - System colors + - Sizes: XS, S, M, L, XL + +## [0.3.0] - 2023-04-27 ### Changed diff --git a/css/components/buttons.css b/css/components/buttons.css index 8ed54b5..3bd9927 100644 --- a/css/components/buttons.css +++ b/css/components/buttons.css @@ -10,8 +10,11 @@ button { transition: var(--transition-duration); } -button:hover { - cursor: pointer; +button:hover { cursor: pointer;} +button:disabled { cursor: not-allowed;} +button:focus { + outline-color: transparent; + outline-style: solid; } /* Button sizes */ @@ -43,18 +46,9 @@ button:hover { .button-primary { background-color: var(--primary);} .button-primary:hover { background-color: var(--primary-60);} .button-primary:active { background-color: var(--primary-40);} -.button-primary:focus { - box-shadow: 0 0 0 3px var(--primary-80); - outline-color: transparent; - outline-style: solid; -} -.button-primary:disabled { - background-color: var(--primary-80); -} -.button-primary:disabled:hover { - background-color: var(--primary-80); - cursor: not-allowed; -} +.button-primary:focus { box-shadow: 0 0 0 3px var(--primary-80);} +.button-primary:disabled { background-color: var(--primary-80);} +.button-primary:disabled:hover { background-color: var(--primary-80);} /* secondary button */ .button-secondary { @@ -63,34 +57,56 @@ button:hover { background-color: transparent; color: var(--primary); } -.button-secondary:hover { background-color: var(--primary-60);} -.button-secondary:active { background-color: var(--primary-40);} -.button-secondary:focus { - box-shadow: 0 0 0 3px var(--primary-80); - outline-color: transparent; - outline-style: solid; -} -.button-secondary:disabled { - background-color: var(--primary-80); + +.button-secondary:hover { + color: var(--text-button); + background-color: var(--primary-60); + border: 3px solid var(--primary-60); } -.button-secondary:disabled:hover { - background-color: var(--primary-l-80); - cursor: not-allowed; +.button-secondary:active { background-color: var(--primary-40);} +.button-secondary:focus { box-shadow: 0 0 0 3px var(--primary-80);} +.button-secondary:disabled { + border: 3px solid var(--primary-80); + color: var(--primary-80); } +.button-secondary:disabled:hover { background-color: var(--primary-80);} /* CTA button */ -.button-cta { background-color: var(--accent-50);} +.button-cta { background-color: var(--accent);} .button-cta:hover { background-color: var(--accent-60);} .button-cta:active { background-color: var(--accent-40);} -.button-cta:focus { - box-shadow: 0 0 0 3px var(--accent-80); - outline-color: transparent; - outline-style: solid; -} -.button-cta:disabled { - background-color: var(--accent-80); -} -.button-cta:disabled:hover { - background-color: var(--accent-80); - cursor: not-allowed; -} \ No newline at end of file +.button-cta:focus { box-shadow: 0 0 0 3px var(--accent-80);} +.button-cta:disabled { background-color: var(--accent-80);} +.button-cta:disabled:hover { background-color: var(--accent-80);} + +/* Information button */ +.button-info { background-color: var(--info);} +.button-info:hover { background-color: var(--info-60);} +.button-info:active { background-color: var(--info-40);} +.button-info:focus { box-shadow: 0 0 0 3px var(--info-80);} +.button-info:disabled { background-color: var(--info-80);} +.button-info:disabled:hover { background-color: var(--info-80);} + +/* Success button */ +.button-success { background-color: var(--success);} +.button-success:hover { background-color: var(--success-60);} +.button-success:active { background-color: var(--success-40);} +.button-success:focus { box-shadow: 0 0 0 3px var(--success-80);} +.button-success:disabled { background-color: var(--success-80);} +.button-success:disabled:hover { background-color: var(--success-80);} + +/* Warning button */ +.button-warning { background-color: var(--warning);} +.button-warning:hover { background-color: var(--warning-60);} +.button-warning:active { background-color: var(--warning-40);} +.button-warning:focus { box-shadow: 0 0 0 3px var(--warning-80);} +.button-warning:disabled { background-color: var(--warning-80);} +.button-warning:disabled:hover {background-color: var(--warning-80);} + +/* Error button */ +.button-error { background-color: var(--error);} +.button-error:hover { background-color: var(--error-60);} +.button-error:active { background-color: var(--error-40);} +.button-error:focus { box-shadow: 0 0 0 3px var(--error-80);} +.button-error:disabled { background-color: var(--error-80);} +.button-error:disabled:hover { background-color: var(--error-80);} \ No newline at end of file diff --git a/css/components/buttons.min.css b/css/components/buttons.min.css index 8e1a310..d739d53 100644 --- a/css/components/buttons.min.css +++ b/css/components/buttons.min.css @@ -1 +1 @@ -button{position:relative;box-sizing:border-box;border-radius:var(--rounded-m);border:none;color:var(--text-button);max-width:450px;position:relative;transition:var(--transition-duration)}button:hover{cursor:pointer}.button-s{font-size:14px;font-weight:500;line-height:24px;min-width:96px;padding:8px 20px}.button-m{font-size:16px;font-weight:500;line-height:24px;min-width:128px;padding:10px 26px}.button-l{font-size:20px;font-weight:500;line-height:24px;min-width:128px;padding:12px 32px}.button-primary{background-color:var(--primary)}.button-primary:hover{background-color:var(--primary-60)}.button-primary:active{background-color:var(--primary-40)}.button-primary:focus{box-shadow:0 0 0 3px var(--primary-80);outline-color:transparent;outline-style:solid}.button-primary:disabled{background-color:var(--primary-80)}.button-primary:disabled:hover{background-color:var(--primary-80);cursor:not-allowed}.button-secondary{box-sizing:border-box;border:3px solid var(--primary);background-color:transparent;color:var(--primary)}.button-secondary:hover{background-color:var(--primary-60)}.button-secondary:active{background-color:var(--primary-40)}.button-secondary:focus{box-shadow:0 0 0 3px var(--primary-80);outline-color:transparent;outline-style:solid}.button-secondary:disabled{background-color:var(--primary-80)}.button-secondary:disabled:hover{background-color:var(--primary-l-80);cursor:not-allowed}.button-cta{background-color:var(--accent-50)}.button-cta:hover{background-color:var(--accent-60)}.button-cta:active{background-color:var(--accent-40)}.button-cta:focus{box-shadow:0 0 0 3px var(--accent-80);outline-color:transparent;outline-style:solid}.button-cta:disabled{background-color:var(--accent-80)}.button-cta:disabled:hover{background-color:var(--accent-80);cursor:not-allowed} \ No newline at end of file +button{position:relative;box-sizing:border-box;border-radius:var(--rounded-m);border:none;color:var(--text-button);max-width:450px;position:relative;transition:var(--transition-duration)}button:hover{cursor:pointer}button:disabled{cursor:not-allowed}button:focus{outline-color:transparent;outline-style:solid}.button-s{font-size:14px;font-weight:500;line-height:24px;min-width:96px;padding:8px 20px}.button-m{font-size:16px;font-weight:500;line-height:24px;min-width:128px;padding:10px 26px}.button-l{font-size:20px;font-weight:500;line-height:24px;min-width:128px;padding:12px 32px}.button-primary{background-color:var(--primary)}.button-primary:hover{background-color:var(--primary-60)}.button-primary:active{background-color:var(--primary-40)}.button-primary:focus{box-shadow:0 0 0 3px var(--primary-80)}.button-primary:disabled{background-color:var(--primary-80)}.button-primary:disabled:hover{background-color:var(--primary-80)}.button-secondary{box-sizing:border-box;border:3px solid var(--primary);background-color:transparent;color:var(--primary)}.button-secondary:hover{color:var(--text-button);background-color:var(--primary-60);border:3px solid var(--primary-60)}.button-secondary:active{background-color:var(--primary-40)}.button-secondary:focus{box-shadow:0 0 0 3px var(--primary-80)}.button-secondary:disabled{border:3px solid var(--primary-80);color:var(--primary-80)}.button-secondary:disabled:hover{background-color:var(--primary-80)}.button-cta{background-color:var(--accent)}.button-cta:hover{background-color:var(--accent-60)}.button-cta:active{background-color:var(--accent-40)}.button-cta:focus{box-shadow:0 0 0 3px var(--accent-80)}.button-cta:disabled{background-color:var(--accent-80)}.button-cta:disabled:hover{background-color:var(--accent-80)}.button-info{background-color:var(--info)}.button-info:hover{background-color:var(--info-60)}.button-info:active{background-color:var(--info-40)}.button-info:focus{box-shadow:0 0 0 3px var(--info-80)}.button-info:disabled{background-color:var(--info-80)}.button-info:disabled:hover{background-color:var(--info-80)}.button-success{background-color:var(--success)}.button-success:hover{background-color:var(--success-60)}.button-success:active{background-color:var(--success-40)}.button-success:focus{box-shadow:0 0 0 3px var(--success-80)}.button-success:disabled{background-color:var(--success-80)}.button-success:disabled:hover{background-color:var(--success-80)}.button-warning{background-color:var(--warning)}.button-warning:hover{background-color:var(--warning-60)}.button-warning:active{background-color:var(--warning-40)}.button-warning:focus{box-shadow:0 0 0 3px var(--warning-80)}.button-warning:disabled{background-color:var(--warning-80)}.button-warning:disabled:hover{background-color:var(--warning-80)}.button-error{background-color:var(--error)}.button-error:hover{background-color:var(--error-60)}.button-error:active{background-color:var(--error-40)}.button-error:focus{box-shadow:0 0 0 3px var(--error-80)}.button-error:disabled{background-color:var(--error-80)}.button-error:disabled:hover{background-color:var(--error-80)} \ No newline at end of file diff --git a/css/components/progress.css b/css/components/progress.css new file mode 100644 index 0000000..2a15154 --- /dev/null +++ b/css/components/progress.css @@ -0,0 +1,58 @@ +/* Default progress bar */ +.progress { + position: relative; + width: 25rem; + height: 3rem; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + border: 1px solid var(--background); + border-radius: var(--rounded-m); + background-color: var(--background-light); +} + +.progress .progress-bar { + position: absolute; + left: 0; + width: 0; + height: 100%; + border-radius: var(--rounded-m); + background-color: var(--background); + z-index: 200; +} + +/* Colors */ +/* Primary */ +.progress-primary > .progress-bar { background-color: var(--primary);} + +/* Accent */ +.progress-accent > .progress-bar { background-color: var(--accent);} + +/* Information */ +.progress-info > .progress-bar { background-color: var(--info);} + +/* Success */ +.progress-success > .progress-bar { background-color: var(--success);} + +/* Warning */ +.progress-warning > .progress-bar { background-color: var(--warning);} + +/* Error */ +.progress-error > .progress-bar { background-color: var(--error);} + +/* Sizes */ +/* Progress bar XS */ +.progress-xs { height: .5rem;} + +/* Progress bar S */ +.progress-s { height: 1rem;} + +/* Progress bar M */ +.progress-m { height: 2rem;} + +/* Progress bar L */ +.progress-l { height: 2.5rem;} + +/* Progress bar XL */ +.progress-xl { height: 3rem;} \ No newline at end of file diff --git a/examamples/components/example_badges.html b/examamples/components/example_badges.html index 1c5d6ac..63c740b 100644 --- a/examamples/components/example_badges.html +++ b/examamples/components/example_badges.html @@ -15,50 +15,52 @@