Files
Nitro-V3/src/css/index.css
T
DuckieTM a38a52fa5d 🆙 Release RC-1
2026-02-27 22:49:33 +01:00

952 lines
20 KiB
CSS

@import 'tailwindcss';
@config "../../tailwind.config.js";
@font-face {
font-family: Ubuntu;
src: url("@/assets/webfonts/Ubuntu-C.ttf");
}
html,
body {
padding: 0;
width: 100%;
height: 100%;
overflow: hidden;
-webkit-user-select: none;
user-select: none;
scrollbar-width: thin;
}
*,
*:focus,
*:hover {
@apply outline-0;
}
::-webkit-scrollbar {
width: .5rem
}
::-webkit-scrollbar:horizontal {
height: .5rem
}
::-webkit-scrollbar:not(:horizontal) {
width: .5rem
}
::-webkit-scrollbar-track:horizontal {
border-bottom: .25rem solid rgba(0, 0, 0, .1)
}
::-webkit-scrollbar-track:not(:horizontal) {
border-right: .25rem solid rgba(0, 0, 0, .1)
}
::-webkit-scrollbar-thumb:horizontal {
border-bottom: .25rem solid rgba(30, 114, 149, .4)
}
::-webkit-scrollbar-thumb:horizontal:hover {
border-bottom: .25rem solid rgba(30, 114, 149, .8)
}
::-webkit-scrollbar-thumb:horizontal:active {
border-bottom: .25rem solid #185D79
}
::-webkit-scrollbar-thumb:not(:horizontal) {
border-right: .25rem solid rgba(30, 114, 149, .4)
}
::-webkit-scrollbar-thumb:not(:horizontal):hover {
border-right: .25rem solid rgba(30, 114, 149, .8)
}
::-webkit-scrollbar-thumb:not(:horizontal):active {
border-right: .25rem solid #185D79
}
::-webkit-scrollbar-corner {
background: rgba(0, 0, 0, .1)
}
@layer components {
@keyframes blink {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0;
}
}
@keyframes scale {
0%,
100% {
transform: scale(1);
}
50% {
transform: scale(1.5);
}
}
.dot {
position: absolute;
width: 2px;
height: 2px;
background-color: white;
animation: blink 2s infinite;
}
.star {
position: absolute;
width: 10px;
height: 10px;
color: #ffffff;
&:after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: currentColor;
width: 5px;
height: 5px;
-webkit-animation: blink 1s linear infinite;
animation: blink 1s linear infinite;
}
.star-part {
position: absolute;
background-color: currentColor;
&:nth-child(1) {
top: 0;
left: 50%;
width: 1px;
height: 100%;
transform: translateX(-50%);
}
&:nth-child(2) {
top: 50%;
left: 0;
width: 100%;
height: 1px;
transform: translateY(-50%);
}
}
}
.toolbar {
@apply relative;
background: rgb(33, 33, 33);
background: linear-gradient(0deg, rgba(33, 33, 33, 0.9) 0%, rgba(51, 51, 51, 0.9) 100%);
&::before {
content: "";
display: block;
position: absolute;
top: 1px;
left: 0;
right: 0;
height: 2px;
background-color: rgba(255, 255, 255, 0.05);
}
&::after {
content: "";
display: block;
position: absolute;
bottom: 2px;
left: 0;
right: 0;
height: 2px;
background-color: rgba(0, 0, 0, 0.1);
}
}
.avatar-image {
@apply pointer-events-none relative h-[130px] w-[90px] bg-position-[center_-8px] bg-no-repeat;
}
.ubuntu-close-button {
@apply inline-block h-[20px] w-[19px] bg-transparent bg-position-[0px_0px] bg-no-repeat outline-0;
background-image: url("@/assets/images/ui/ubuntu-close-buttons.png");
&:hover {
@apply bg-position-[-38px];
}
&:active {
@apply bg-position-[-19px];
}
}
}
.unique-item {
.unique-bg-override {
@apply z-2 bg-center bg-no-repeat;
}
&:before {
@apply absolute z-1 size-full bg-center bg-no-repeat [content:""];
background-image: url("@/assets/images/unique/grid-bg.png");
}
&:after {
@apply absolute bottom-0 z-4 size-full bg-center bg-no-repeat [content:""];
background-image: url("@/assets/images/unique/grid-bg-glass.png");
}
&.sold-out:after {
@apply bg-center bg-no-repeat;
background-image: url("@/assets/images/unique/grid-bg-sold-out.png"),
url("@/assets/images/unique/grid-bg-glass.png");
}
.unique-item-counter {
background-image: url("@/assets/images/unique/grid-count-bg.png");
@apply bottom-px z-3 mx-auto my-0 flex h-[9px] w-full items-center justify-center bg-center bg-no-repeat;
}
}
.unique-sold-out-blocker {
width: 364px;
height: 30px;
background: url("@/assets/images/unique/catalog-info-sold-out.png");
div {
float: right;
width: 140px;
text-align: center;
font-weight: bold;
margin-top: 5px;
margin-right: 17px;
color: #000;
}
}
.unique-compact-plate {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
right: 16px;
width: 34px;
height: 37px;
background: url("@/assets/images/unique/inventory-info-amount-bg.png");
div {
display: flex;
justify-content: center;
align-items: center;
height: 9.5px;
}
}
.unique-complete-plate {
width: 170px;
height: 29px;
background: url("@/assets/images/unique/catalog-info-amount-bg.png") no-repeat center;
z-index: 1;
padding-top: 3px;
.plate-container {
margin-left: 45px;
width: 100px;
font-size: 10px;
color: black;
> :first-child {
margin-bottom: 2px;
}
}
}
.limited-edition-number {
display: inline-block;
outline: 0;
height: 5px;
margin-right: 1px;
background-image: url("@/assets/images/unique/numbers.png");
background-repeat: no-repeat;
&:last-child {
margin-right: 0px;
}
&.n-0 {
width: 4px;
baseackground-position: -1px 0px;
}
&.n-1 {
width: 2px;
background-position: -6px 0px;
}
&.n-2 {
width: 4px;
background-position: -9px 0px;
}
&.n-3 {
width: 4px;
background-position: -14px 0px;
}
&.n-4 {
width: 4px;
background-position: -19px 0px;
}
&.n-5 {
width: 4px;
background-position: -24px 0px;
}
&.n-6 {
width: 4px;
background-position: -29px 0px;
}
&.n-7 {
width: 4px;
background-position: -34px 0px;
}
&.n-8 {
width: 4px;
background-position: -39px 0px;
}
&.n-9 {
width: 4px;
background-position: -44px 0px;
}
}
.layout-grid-item {
height: var(--nitro-grid-column-min-height, unset);
background-position: center;
background-repeat: no-repeat;
background-color: #cdd3d9;
}
.nitro-friends-spritesheet {
background: url('@/assets/images/friends/friends-spritesheet.png') transparent no-repeat;
&.icon-friendbar-visit {
width: 21px;
height: 21px;
background-position: -38px -5px;
}
&.icon-heart {
width: 16px;
height: 14px;
background-position: -5px -67px;
}
&.icon-new-message {
width: 14px;
height: 14px;
background-position: -96px -53px;
}
&.icon-none {
width: 16px;
height: 14px;
background-position: -31px -67px;
}
&.icon-profile {
width: 21px;
height: 21px;
background-position: -5px -36px;
}
&.icon-profile-sm {
width: 13px;
height: 11px;
background-position: -51px -91px;
&:hover {
width: 13px;
height: 11px;
background-position: -74px -91px;
}
}
&.icon-smile {
width: 16px;
height: 14px;
background-position: -57px -67px;
}
&.icon-warning {
width: 23px;
height: 21px;
background-position: -5px -5px;
}
&.icon-accept {
width: 13px;
height: 14px;
background-position: -5px -91px;
}
&.icon-add {
width: 16px;
height: 15px;
background-position: -69px -31px;
}
&.icon-bobba {
width: 16px;
height: 14px;
background-position: -96px -5px;
}
&.icon-chat {
width: 17px;
height: 16px;
background-position: -69px -5px;
}
&.icon-deny {
width: 13px;
height: 14px;
background-position: -28px -91px;
}
&.icon-follow {
width: 16px;
height: 14px;
background-position: -96px -29px;
}
&.icon-friendbar-chat {
width: 20px;
height: 21px;
background-position: -36px -36px;
}
}
.nitro-avatar-editor-spritesheet {
background: url('@/assets/images/avatareditor/avatar-editor-spritesheet.png') transparent no-repeat;
&.arrow-left-icon {
width: 28px;
height: 21px;
background-position: -226px -131px;
}
&.arrow-right-icon {
width: 28px;
height: 21px;
background-position: -226px -162px;
}
&.ca-icon {
width: 25px;
height: 25px;
background-position: -226px -61px;
&.selected {
width: 25px;
height: 25px;
background-position: -226px -96px;
}
}
&.cc-icon {
width: 31px;
height: 29px;
background-position: -145px -5px;
&.selected {
width: 31px;
height: 29px;
background-position: -145px -44px;
}
}
&.ch-icon {
width: 29px;
height: 24px;
background-position: -186px -39px;
&.selected {
width: 29px;
height: 24px;
background-position: -186px -73px;
}
}
&.clear-icon {
width: 27px;
height: 27px;
background-position: -145px -157px;
}
&.cp-icon {
width: 30px;
height: 24px;
background-position: -145px -264px;
&.selected {
width: 30px;
height: 24px;
background-position: -186px -5px;
}
}
&.ea-icon {
width: 35px;
height: 16px;
background-position: -226px -193px;
&.selected {
width: 35px;
height: 16px;
background-position: -226px -219px;
}
}
&.fa-icon {
width: 27px;
height: 20px;
background-position: -186px -137px;
&.selected {
width: 27px;
height: 20px;
background-position: -186px -107px;
}
}
&.female-icon {
width: 18px;
height: 27px;
background-position: -186px -202px;
&.selected {
width: 18px;
height: 27px;
background-position: -186px -239px;
}
}
&.ha-icon {
width: 25px;
height: 22px;
background-position: -226px -245px;
&.selected {
width: 25px;
height: 22px;
background-position: -226px -277px;
}
}
&.he-icon {
width: 31px;
height: 27px;
background-position: -145px -83px;
&.selected {
width: 31px;
height: 27px;
background-position: -145px -120px;
}
}
&.hr-icon {
width: 29px;
height: 25px;
background-position: -145px -194px;
&.selected {
width: 29px;
height: 25px;
background-position: -145px -229px;
}
}
&.lg-icon {
width: 19px;
height: 20px;
background-position: -303px -45px;
&.selected {
width: 19px;
height: 20px;
background-position: -303px -75px;
}
}
&.loading-icon {
width: 21px;
height: 25px;
background-position: -186px -167px;
}
&.male-icon {
width: 21px;
height: 21px;
background-position: -186px -276px;
&.selected {
width: 21px;
height: 21px;
background-position: -272px -5px;
}
}
&.sellable-icon {
width: 17px;
height: 15px;
background-position: -303px -105px;
}
&.sh-icon {
width: 37px;
height: 10px;
background-position: -303px -5px;
&.selected {
width: 37px;
height: 10px;
background-position: -303px -25px;
}
}
&.spotlight-icon {
width: 130px;
height: 305px;
background-position: -5px -5px;
}
&.wa-icon {
width: 36px;
height: 18px;
background-position: -226px -5px;
&.selected {
width: 36px;
height: 18px;
background-position: -226px -33px;
}
}
}
.nitro-avatar-editor-wardrobe-figure-preview {
background-color: #677181;
overflow: hidden;
z-index: 1;
.avatar-image {
position: absolute;
bottom: 15px;
margin: 0 auto;
z-index: 4;
}
.avatar-shadow {
position: absolute;
left: 0;
right: 0;
bottom: 25px;
width: 40px;
height: 20px;
margin: 0 auto;
border-radius: 100%;
background-color: rgba(0, 0, 0, 0.20);
z-index: 2;
}
&:after {
position: absolute;
content: '';
top: 75%;
bottom: 0;
left: 0;
right: 0;
border-radius: 50%;
background-color: #677181;
box-shadow: 0 0 8px 2px rgba(255, 255, 255, 0.6);
transform: scale(2);
}
.button-container {
position: absolute;
bottom: 0;
z-index: 5;
}
}
.nitro-avatar-editor {
.category-item {
height: 40px;
}
.figure-preview-container {
position: relative;
height: 100%;
background-color: #677181;
overflow: hidden;
z-index: 1;
.arrow-container {
position: absolute;
width: 100%;
margin: 0 auto;
padding: 0 10px;
display: flex;
justify-content: space-between;
bottom: 12px;
z-index: 5;
.icon {
cursor: pointer;
}
}
.avatar-image {
position: absolute;
left: 0;
right: 0;
bottom: 50px;
margin: 0 auto;
z-index: 4;
}
.avatar-spotlight {
position: absolute;
top: -10px;
left: 0;
right: 0;
margin: 0 auto;
opacity: 0.3;
pointer-events: none;
z-index: 3;
}
.avatar-shadow {
position: absolute;
left: 0;
right: 0;
bottom: 15px;
width: 70px;
height: 30px;
margin: 0 auto;
border-radius: 100%;
background-color: rgba(0, 0, 0, 0.20);
z-index: 2;
}
&:after {
position: absolute;
content: '';
top: 75%;
bottom: 0;
left: 0;
right: 0;
border-radius: 50%;
background-color: #677181;
box-shadow: 0 0 8px 2px rgba(255, 255, 255, 0.6);
transform: scale(2);
}
}
}
/* Font Size */
.fs-custom {
font-size: var(--font-size, 16px); /* Fallback to 16px if not set */
}
/* Header and Tab Colors */
.bg-card-header {
background-color: #1e7295; /* e.g., #2c3e50 */
}
.bg-card-tabs {
background-color: #185d79; /* Match bg-card-header */
}
/* ── Avatar Editor ─────────────────────────────────────────────────────── */
.color-picker-frame {
border-image-source: url('@/assets/images/avatareditor/color_frame.png');
border-image-slice: 6 6 6 6 fill;
border-image-width: 6px 6px 6px 6px;
width: 14px;
height: 21px;
border-radius: 4px;
&.active,
&:hover {
border-image-source: url('@/assets/images/avatareditor/color_frame_active.png');
height: 21px;
margin-top: -2px;
}
}
.hc-icon {
background-image: url('@/assets/images/avatareditor/hc_icon.png');
height: 9px;
width: 10px;
bottom: 2px;
left: 2px;
}
.avatar-parts {
border: none !important;
height: 42px;
width: 42px;
background-position: center;
background-repeat: no-repeat;
border-radius: 2rem !important;
overflow: visible !important;
background-color: transparent;
&:hover {
box-shadow: 0 0 0 3px #dbdad5 !important;
background-color: #cecdc8 !important;
}
&:active,
&.part-selected {
box-shadow: 0 0 0 3px #c5c3c0 !important;
background-color: #b1b1b1 !important;
}
}
.avatar-container {
padding: 3px;
height: 50px;
border-radius: 0.3rem;
background-color: #a7a6a2;
width: 48px;
}
.avatar-parts-container {
height: 70%;
}
.avatar-color-palette-container {
height: 30%;
width: 100% !important;
}
.dual-palette {
display: flex !important;
flex-direction: row !important;
}
.avatar-editor-palette-set-view {
padding-right: 15px !important;
flex-grow: 1;
}
.action-buttons {
gap: 5px;
}
/* ── Avatar Editor tab icons ───────────────────────────────────────────── */
.avatar-editor-tabs {
position: relative;
.tab {
background-position-x: center;
background-position-y: center;
background-repeat: no-repeat;
width: 34px;
height: 22px;
}
.hd { background-image: url('@/assets/images/wardrobe/hd.png'); }
.head { background-image: url('@/assets/images/wardrobe/head.png'); }
.torso { background-image: url('@/assets/images/wardrobe/torso.png'); }
.legs { background-image: url('@/assets/images/wardrobe/legs.png'); }
.tab-wardrobe {
width: 40px;
height: 28px;
background-size: 38px 28px;
background-image: url('@/assets/images/wardrobe/wardrobe.png');
background-repeat: no-repeat;
background-position: center;
filter: contrast(1.2) brightness(1.05);
}
}
/* ── Avatar Editor misc ─────────────────────────────────────────────────── */
.saved-outfits-title {
color: #a7a6a2;
font-weight: bold;
}
.nitro-avatar-editor-wardrobe-container {
background-color: #cacaca;
border-radius: 0.3rem;
border: solid 1px #000;
width: 100%;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
padding: 10px 12px 10px 0;
overflow-y: auto;
}
.nitro-avatar-editor-wardrobe-figure-preview {
border-image-source: url('@/assets/images/avatareditor/wardrobe_user_bg.png');
border-image-slice: 4 4 4 4 fill;
border-image-width: 4px 4px 4px 4px;
background-color: transparent;
overflow: hidden;
position: relative;
.avatar-shadow {
position: absolute;
left: 0;
right: 0;
bottom: 25px;
width: 40px;
height: 20px;
margin: 0 auto;
border-radius: 100%;
background-color: rgba(0, 0, 0, 0.20);
z-index: 2;
}
.button-container {
position: absolute;
bottom: 0;
z-index: 5;
width: 100%;
}
}