summaryrefslogtreecommitdiffstats
path: root/packages/excalidraw/css/variables.module.scss
diff options
context:
space:
mode:
Diffstat (limited to 'packages/excalidraw/css/variables.module.scss')
-rw-r--r--packages/excalidraw/css/variables.module.scss190
1 files changed, 190 insertions, 0 deletions
diff --git a/packages/excalidraw/css/variables.module.scss b/packages/excalidraw/css/variables.module.scss
new file mode 100644
index 0000000..c360c0d
--- /dev/null
+++ b/packages/excalidraw/css/variables.module.scss
@@ -0,0 +1,190 @@
+@import "open-color/open-color.scss";
+
+@mixin isMobile() {
+ @at-root .excalidraw--mobile#{&} {
+ @content;
+ }
+}
+
+@mixin toolbarButtonColorStates {
+ &.fillable {
+ .ToolIcon_type_radio,
+ .ToolIcon_type_checkbox {
+ &:checked + .ToolIcon__icon {
+ --icon-fill-color: var(--color-on-primary-container);
+
+ svg {
+ fill: var(--icon-fill-color);
+ }
+ }
+ }
+ }
+
+ .ToolIcon_type_radio,
+ .ToolIcon_type_checkbox {
+ &:checked + .ToolIcon__icon {
+ background: var(--color-surface-primary-container);
+ --keybinding-color: var(--color-on-primary-container);
+
+ svg {
+ color: var(--color-on-primary-container);
+ }
+ }
+ }
+
+ .ToolIcon__keybinding {
+ bottom: 4px;
+ right: 4px;
+ }
+
+ .ToolIcon__icon {
+ &:hover {
+ background: var(--button-hover-bg);
+ }
+
+ &:active {
+ background: var(--button-hover-bg);
+ border: 1px solid var(--button-active-border);
+
+ svg {
+ color: var(--color-on-primary-container);
+ }
+ }
+
+ &[aria-disabled="true"] {
+ background: initial;
+ border: none;
+
+ svg {
+ color: var(--color-disabled);
+ }
+ }
+ }
+}
+
+@mixin outlineButtonStyles {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 0.625rem;
+ width: var(--button-width, var(--default-button-size));
+ height: var(--button-height, var(--default-button-size));
+ box-sizing: border-box;
+ border-width: 1px;
+ border-style: solid;
+ border-color: var(--button-border, var(--default-border-color));
+ border-radius: var(--border-radius-lg);
+ cursor: pointer;
+ background-color: var(--button-bg, var(--island-bg-color));
+ color: var(--button-color, var(--color-on-surface));
+ font-family: var(--ui-font);
+
+ svg {
+ width: var(--button-width, var(--lg-icon-size));
+ height: var(--button-height, var(--lg-icon-size));
+ }
+
+ &:hover {
+ background-color: var(--button-hover-bg, var(--island-bg-color));
+ border-color: var(
+ --button-hover-border,
+ var(--button-border, var(--default-border-color))
+ );
+ color: var(
+ --button-hover-color,
+ var(--button-color, var(--text-primary-color, inherit))
+ );
+ }
+
+ &:active {
+ background-color: var(--button-active-bg, var(--island-bg-color));
+ border-color: var(--button-active-border, var(--color-primary-darkest));
+ }
+
+ &.active {
+ background-color: var(
+ --button-selected-bg,
+ var(--color-surface-primary-container)
+ );
+ border-color: var(
+ --button-selected-border,
+ var(--color-surface-primary-container)
+ );
+
+ &:hover {
+ background-color: var(
+ --button-selected-hover-bg,
+ var(--color-surface-primary-container)
+ );
+ }
+
+ svg {
+ color: var(--button-color, var(--color-on-primary-container));
+ }
+ }
+}
+
+@mixin outlineButtonIconStyles {
+ @include outlineButtonStyles;
+ padding: 0;
+
+ svg {
+ width: var(--default-icon-size);
+ height: var(--default-icon-size);
+ }
+}
+
+@mixin avatarStyles {
+ width: var(--avatar-size, 1.5rem);
+ height: var(--avatar-size, 1.5rem);
+ position: relative;
+ border-radius: 100%;
+ outline-offset: 2px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ font-size: 0.75rem;
+ font-weight: 700;
+ line-height: 1;
+ color: var(--color-gray-90);
+ flex: 0 0 auto;
+
+ &:active {
+ transform: scale(0.94);
+ }
+
+ &-img {
+ width: 100%;
+ height: 100%;
+ border-radius: 100%;
+ }
+
+ &::before {
+ content: "";
+ position: absolute;
+ top: -3px;
+ right: -3px;
+ bottom: -3px;
+ left: -3px;
+ border-radius: 100%;
+ }
+
+ &.is-followed::before {
+ border-color: var(--color-primary-hover);
+ box-shadow: 0 0 0 1px var(--color-primary-hover);
+ }
+ &.is-current-user {
+ cursor: auto;
+ }
+}
+
+@mixin filledButtonOnCanvas {
+ border: none;
+ box-shadow: 0 0 0 1px var(--color-surface-lowest);
+ background-color: var(--color-surface-low);
+
+ &:active {
+ box-shadow: 0 0 0 1px var(--color-brand-active);
+ }
+}