Spaces:
Running
Running
@import "../../css/units.css"; | |
@import "../../css/colors.css"; | |
/* @todo: refactor this class name, and component: `sprite-selector` to `sprite` */ | |
.sprite-selector-item { | |
display: flex; | |
flex-direction: column; | |
justify-content: flex-start; | |
position: relative; | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
font-size: 0.8rem; | |
color: $text-primary; | |
border-width: 2px; | |
border-style: solid; | |
border-color: $ui-black-transparent; | |
border-radius: $space; | |
text-align: center; | |
cursor: pointer; | |
user-select: none; | |
} | |
.sprite-selector-item.is-selected { | |
box-shadow: 0px 0px 0px 4px $motion-transparent; | |
border: 2px solid $motion-primary; | |
background: $ui-white; | |
} | |
[theme="dark"] .sprite-selector-item.is-selected { | |
background: $ui-primary; | |
} | |
.sprite-selector-item:hover { | |
border: 2px solid $motion-primary; | |
background: $ui-white; | |
} | |
[theme="dark"] .sprite-selector-item:hover { | |
background: $ui-primary; | |
} | |
.sprite-selector-item:hover .sprite-image, .is-selected .sprite-image { | |
filter: drop-shadow(0px 0px 2px $ui-black-transparent); | |
} | |
/* Outer/Inner chicanery is to prevent layouts when sprite image changes */ | |
.sprite-image-outer { | |
position: relative; | |
width: 100%; | |
height: 100%; | |
transform: translateZ(0); | |
} | |
.sprite-image-inner { | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
} | |
.sprite-image { | |
user-select: none; | |
pointer-events: none; | |
max-width: 32px; | |
max-height: 32px; | |
} | |
.sprite-info { | |
padding: 0.25rem; | |
border-bottom-left-radius: 0.25rem; | |
border-bottom-right-radius: 0.25rem; | |
font-size: 0.625rem; | |
color: $text-primary; | |
user-select: none; | |
} | |
.sprite-name, .sprite-details { | |
/* | |
For truncating overflowing text gracefully | |
Min-width is for a bug: https://css-tricks.com/flexbox-truncated-text | |
*/ | |
overflow: hidden; | |
text-overflow: ellipsis; | |
white-space: nowrap; | |
min-width: 0; | |
} | |
.sprite-details { | |
margin-top: 0.125rem; | |
font-size: 0.5rem; | |
} | |
.is-selected .sprite-info { | |
background: $motion-primary; | |
color: $ui-white; | |
} | |
.delete-button { | |
position: absolute; | |
top: -.625rem; | |
z-index: auto; | |
} | |
[dir="ltr"] .delete-button { | |
right: -.625rem; | |
} | |
[dir="rtl"] .delete-button { | |
left: -.625rem; | |
} | |
.number { | |
position: absolute; | |
top: 0.15rem; | |
font-size: 0.625rem; | |
font-weight: bold; | |
z-index: 2; | |
} | |
[dir="ltr"] .number { | |
left: 0.15rem; | |
} | |
[dir="rtl"] .number { | |
right: 0.15rem; | |
} | |