Dwinzo_dev/app/src/styles/components/tools.scss

221 lines
4.5 KiB
SCSS
Raw Normal View History

2025-03-25 06:17:41 +00:00
@use "../abstracts/variables" as *;
@use "../abstracts/mixins" as *;
.tools-container {
@include flex-center;
position: fixed;
2025-04-07 12:25:14 +00:00
bottom: 32px;
2025-03-25 06:17:41 +00:00
left: 50%;
transform: translate(-50%, 0);
padding: 8px;
gap: 10px;
box-shadow: #{$box-shadow-medium};
border-radius: #{$border-radius-large};
width: fit-content;
transition: width 0.2s;
background: var(--background-color);
backdrop-filter: blur(8px);
z-index: 2;
outline: 1px solid var(--border-color);
outline-offset: -1px;
2025-03-26 08:22:10 +00:00
2025-03-25 06:17:41 +00:00
.split {
height: 20px;
width: 2px;
border-radius: 2px;
background: var(--text-disabled);
2025-03-25 06:17:41 +00:00
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.draw-tools,
.general-options,
.activeDropicon {
@include flex-center;
gap: 2px;
2025-03-25 06:17:41 +00:00
interpolate-size: allow-keywords;
width: 0;
opacity: 0;
animation: expandWidth 0.2s ease-in-out forwards;
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.tool-button {
@include flex-center;
height: 28px;
width: 28px;
cursor: pointer;
border-radius: #{$border-radius-medium};
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
&:hover {
2025-03-25 08:55:51 +00:00
background: color-mix(in srgb,
var(--highlight-accent-color) 60%,
transparent);
2025-03-25 06:17:41 +00:00
}
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.active {
background: var(--background-color-accent);
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
&:hover {
background: var(--background-color-accent);
2025-03-25 06:17:41 +00:00
}
}
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.activeDropicon {
gap: 2px;
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.drop-down-option-button {
@include flex-center;
height: 28px;
cursor: pointer;
border-radius: #{$border-radius-small};
position: relative;
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
&:hover {
2025-03-25 08:55:51 +00:00
background: color-mix(in srgb,
var(--highlight-accent-color) 60%,
transparent);
2025-03-25 06:17:41 +00:00
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.drop-down-container {
position: absolute;
bottom: 40px;
left: 0;
padding: 2px 4px;
border-radius: #{$border-radius-medium};
background: var(--background-color);
backdrop-filter: blur(8px);
contain: layout paint;
will-change: backdrop-filter;
2025-03-26 06:00:17 +00:00
2025-03-25 06:17:41 +00:00
.option-list {
display: flex;
align-items: center;
white-space: nowrap;
border-radius: #{$border-radius-medium};
gap: 6px;
padding: 2px;
padding-right: 12px;
margin: 2px 0;
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
&:hover {
background: var(--highlight-accent-color);
2025-03-25 06:17:41 +00:00
color: var(--accent-color);
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
path {
stroke: var(--accent-color);
}
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.active-option {
height: 12px;
width: 12px;
@include flex-center;
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.option {
color: inherit;
}
}
}
}
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.toggle-threed-button {
@include flex-center;
padding: 4px;
border-radius: #{$border-radius-medium};
background: var(--background-color);
outline: 1px solid var(--border-color);
outline-offset: -1px;
gap: 5px;
2025-03-25 06:17:41 +00:00
position: relative;
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.toggle-option {
font-size: var(--font-size-small);
padding: 2px;
z-index: 1;
transition: all 0.2s;
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
&::after {
content: "";
position: absolute;
background: var(--background-color-accent);
left: 2px;
top: 2px;
height: 23px;
width: 23px;
border-radius: #{$border-radius-medium};
2025-03-25 06:17:41 +00:00
transition: all 0.2s;
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.active {
color: var(--text-button-color);
2025-03-25 06:17:41 +00:00
}
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
.toggled {
&::after {
left: 25px;
2025-03-25 06:17:41 +00:00
}
}
2025-03-26 06:00:17 +00:00
}
.exitPlay {
width: 30px;
height: 30px;
border-radius: 50%;
background: var(--highlight-accent-color);
2025-03-26 06:00:17 +00:00
cursor: pointer;
@include flex-center;
position: fixed;
2025-03-26 08:22:10 +00:00
bottom: 60px;
2025-03-26 06:00:17 +00:00
left: 50%;
transform: translate(-50%, 0);
2025-03-27 03:36:26 +00:00
color: var(--accent-color);
2025-03-26 08:22:10 +00:00
z-index: 100;
2025-03-27 03:36:26 +00:00
isolation: isolate;
font-weight: 700;
2025-03-26 06:00:17 +00:00
&:hover {
2025-03-27 03:36:26 +00:00
font-weight: 500;
background: var(--accent-color);
2025-03-27 03:36:26 +00:00
color: var(--highlight-accent-color);
&::after{
animation: pulse 1s ease-out infinite;
}
}
&::after{
content: "";
position: absolute;
height: 100%;
width: 100%;
background: var(--background-color-secondary);
border-radius: #{$border-radius-circle};
z-index: -1;
2025-03-25 08:55:51 +00:00
}
2025-03-25 06:17:41 +00:00
}
2025-03-27 03:36:26 +00:00
@keyframes pulse {
0%{
opacity: 0;
scale: .5;
}
50%{
opacity: 1;
}
100%{
opacity: 0;
scale: 2;
}
}
2025-03-26 06:00:17 +00:00
2025-03-25 06:17:41 +00:00
@keyframes expandWidth {
from {
width: 0;
opacity: 0;
}
2025-03-25 08:55:51 +00:00
2025-03-25 06:17:41 +00:00
to {
width: fit-content;
opacity: 1;
}
2025-03-25 08:55:51 +00:00
}