Files
CT/dist/index.css
T
2024-07-21 13:13:41 +02:00

497 lines
11 KiB
CSS

/* src/base.css */
#home-page,
#home-page #chat-section,
#chat-page,
#chat-page #main > div {
animation: slide-up var(--animation-duration) ease;
}
#background-wrapper {
position: fixed;
top: 0px;
left: var(--safe-area-left);
right: var(--safe-area-right);
bottom: 0px;
z-index: 1;
pointer-events: none;
overflow: hidden;
opacity: 0.3;
}
main {
z-index: 2;
}
#background-wrapper div {
content: "";
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
z-index: -1;
pointer-events: none;
filter: blur(40px);
}
#background-wrapper #sky {
left: -100%;
bottom: -50%;
--color-1: hsl(188, 100%, 83%);
--color-2: hsl(194, 72%, 56%);
background-image: radial-gradient(var(--color-1), var(--color-2));
}
#background-wrapper #grass-1 {
--color-1: hsl(120, 50%, 50%);
--color-2: hsl(120, 50%, 40%);
background-image:
linear-gradient(
350deg,
var(--color-1),
var(--color-2) 30%,
transparent 40%);
}
#background-wrapper #grass-2 {
--color-1: hsl(110, 100%, 40%);
--color-2: hsl(110, 100%, 35%);
background-image:
linear-gradient(
4deg,
var(--color-1),
var(--color-2) 25%,
transparent 30%);
}
#background-wrapper #sun {
top: -20%;
left: -200%;
right: -100%;
bottom: -50%;
--color-1: hsl(23, 100%, 50%);
--color-2: hsl(36.5, 100%, 50%);
--color-3: hsl(44.9, 100%, 50%);
background-image:
radial-gradient(
var(--color-1),
var(--color-2) 10%,
var(--color-3) 20%,
transparent 40%);
}
@media (prefers-color-scheme: dark) {
#background-wrapper {
opacity: 0.2;
}
#background-wrapper #sky {
--color-1: hsl(188, 100%, 30%);
--color-2: hsl(194, 72%, 24%);
}
#background-wrapper #grass-1 {
--color-1: hsl(120, 30%, 30%);
--color-2: hsl(120, 30%, 24%);
}
#background-wrapper #grass-2 {
--color-1: hsl(110, 60%, 30%);
--color-2: hsl(110, 50%, 24%);
}
#background-wrapper #sun {
--color-1: hsl(9, 100%, 50%);
--color-2: hsl(36.5, 100%, 40%);
--color-3: hsl(44.9, 100%, 30%);
}
}
/* src/colors.css */
[color]:not([color=standard]) {
--primary: hsl(var(--hue), 100%, var(--accent-luma));
--primary-hover: hsl(var(--hue), 95%, var(--accent-luma));
--primary-active: hsl(var(--hue), 80%, var(--accent-luma));
--text-on-color: hsl(0, 0%, var(--accent-text-luma));
--link: hsl(var(--hue), 100%, var(--accent-luma));
}
@media (prefers-color-scheme: dark) {
[color]:not([color=standard]) {
--accent-luma: var(--accent-luma-dark);
--accent-text-luma: var(--accent-text-luma-dark);
}
}
[color]:not([color=standard]).tile {
--gradient-luma-1: 70%;
--gradient-luma-2: 90%;
--hover-luma: 75%;
--active-luma: 80%;
--text-luma: 20%;
--surface:
linear-gradient(
120deg,
hsl(var(--hue), 100%, var(--gradient-luma-1)),
hsla(var(--hue), 100%, var(--gradient-luma-2), 50%) );
--surface-hover: hsl(var(--hue), 100%, var(--hover-luma));
--surface-active: hsl(var(--hue), 100%, var(--active-luma));
--text-normal: hsl(var(--hue), 100%, var(--text-luma));
}
@media (prefers-color-scheme: dark) {
[color]:not([color=standard]).tile {
--gradient-luma-1: 20%;
--gradient-luma-2: 15%;
--hover-luma: 25%;
--active-luma: 30%;
--text-luma: 90%;
}
}
[color]:not([color=standard]).fill-color {
color: white;
background-color: var(--primary);
}
[color]:not([color=standard])[selected].fill-color {
color: var(--primary);
}
[color]:not([color=standard]).subtle-background {
--luma: var(--subtle-luma);
background: hsl(var(--hue), 30%, var(--luma));
}
@media (prefers-color-scheme: dark) {
[color]:not([color=standard]).subtle-background {
--luma: var(--subtle-luma-dark);
}
}
[color=coral] {
--hue: 20;
--accent-luma: 50%;
--accent-luma-dark: 70%;
--accent-text-luma: 100%;
--accent-text-luma-dark: 100%;
--subtle-luma: 95%;
--subtle-luma-dark: 5%;
}
[color=yellow] {
--hue: 50;
--accent-luma: 50%;
--accent-luma-dark: 60%;
--accent-text-luma: 0%;
--accent-text-luma-dark: 0%;
--subtle-luma: 95%;
--subtle-luma-dark: 5%;
}
[color=mint] {
--hue: 150;
--accent-luma: 40%;
--accent-luma-dark: 60%;
--accent-text-luma: 100%;
--accent-text-luma-dark: 0%;
--subtle-luma: 95%;
--subtle-luma-dark: 5%;
}
[color=lightblue] {
--hue: 180;
--accent-luma: 40%;
--accent-luma-dark: 60%;
--accent-text-luma: 100%;
--accent-text-luma-dark: 0%;
--subtle-luma: 95%;
--subtle-luma-dark: 5%;
}
[color=blue] {
--hue: 220;
--accent-luma: 50%;
--accent-luma-dark: 70%;
--accent-text-luma: 100%;
--accent-text-luma-dark: 100%;
--subtle-luma: 95%;
--subtle-luma-dark: 5%;
}
[color=purple] {
--hue: 280;
--accent-luma: 50%;
--accent-luma-dark: 70%;
--accent-text-luma: 100%;
--accent-text-luma-dark: 100%;
--subtle-luma: 95%;
--subtle-luma-dark: 5%;
}
/* src/View/chatPage.css */
#chat-page-wrapper {
display: none;
}
body[showing-chat] #home-page {
display: none;
}
body[showing-chat] #chat-page-wrapper {
display: flex;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
background-color: var(--background);
z-index: 2;
}
#chat-page {
--ribbon-size: calc(var(--control-height) + 2 * var(--gap-between-tiles));
}
#chat-page #ribbon,
#chat-page .toolbar,
#chat-page #main,
#chat-page #main .content {
display: flex;
}
#chat-page > div {
padding: 0px;
overflow: hidden;
display: flex;
}
#chat-page #main {
width: calc(100% - var(--ribbon-size));
display: flex;
flex-direction: column;
}
#chat-page #main > div,
#chat-page #main .content {
width: 100%;
height: 100%;
flex: 1;
display: flex;
flex-direction: column;
}
#chat-page #main .content {
overflow: auto;
padding: var(--content-padding);
}
#chat-page #ribbon,
#chat-page #main,
#chat-page #main .content {
flex-direction: column;
}
#chat-page #ribbon {
width: var(--ribbon-size);
border-right: 1px solid var(--border);
justify-content: space-between;
padding-bottom: var(--safe-area-bottom);
}
#chat-page #ribbon > span {
height: 100%;
flex: 1;
overflow: auto;
justify-content: flex-end;
}
#chat-page #main .toolbar {
height: var(--ribbon-size);
border-bottom: 1px solid var(--border);
overflow-x: auto;
padding-left: var(--content-padding);
border-top: 1px solid var(--border);
}
#chat-page #ribbon,
#chat-page .toolbar {
align-items: center;
}
#chat-page #ribbon > span,
#chat-page .toolbar > span {
display: flex;
flex-direction: column;
padding: var(--gap-between-tiles);
gap: var(--gap-between-tiles);
}
#chat-page #ribbon > span {
width: 100%;
}
#chat-page #ribbon button,
#chat-page .toolbar button {
padding: 0px;
width: 100%;
max-width: var(--control-height);
height: var(--control-height);
min-height: var(--control-height);
align-items: center;
justify-content: center;
}
#chat-page #ribbon > button {
margin-top: var(--gap-between-tiles);
}
/* src/View/homePage.css */
#home-page > div {
display: flex;
flex-direction: row;
gap: var(--large-gap);
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
overflow: hidden;
overflow-x: scroll;
padding: 0px;
}
#home-page > div > div {
display: flex;
flex-direction: column;
justify-content: start;
gap: var(--gap-between-tiles);
padding: var(--content-padding);
padding-top: calc(var(--header-height) + var(--content-margin));
width: 100%;
min-width: 100%;
height: 100%;
overflow: scroll;
scroll-snap-align: center;
}
#home-page #overview-section,
#home-page #chat-section {
padding-bottom: calc(var(--content-padding) + var(--header-height) + var(--safe-area-bottom));
}
#home-page #chat-grid {
margin-top: var(--content-padding);
display: grid;
gap: var(--gap-between-tiles);
grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
}
@media (min-width: 640px) {
#home-page #overview-section {
width: 20rem;
min-width: 20rem;
}
#home-page #chat-section {
flex: 1;
min-width: unset;
}
}
@media (min-width: 1200px) {
#home-page #overview-section,
#home-page #chat-section {
padding-left: 3rem;
padding-right: 3rem;
}
#home-page #chat-grid {
margin-top: 3rem;
}
#home-page #overview-section {
width: var(--max-input-width);
min-width: var(--max-input-width);
}
}
/* src/View/ChatPages/messagePage.css */
#chat-page #main #message-page .content {
padding: 0px;
overflow: hidden;
display: grid;
grid-template-rows: 1fr var(--control-height) var(--safe-area-bottom);
}
#message-page #message-container {
overflow: auto;
}
#message-page #composer {
display: flex;
justify-content: center;
}
#message-page #composer input {
margin: 0px;
width: 100%;
max-width: unset;
flex: 1;
border-top: 1px solid var(--border);
}
@media (max-width: 700px) {
#message-page #composer div {
width: 100%;
max-width: unset;
display: flex;
}
}
@media (min-width: 700px) {
#message-page #composer .content-width-constraint,
#message-page #composer .input-width-constraint {
display: flex;
justify-content: flex-end;
width: 100%;
max-width: var(--max-content-width);
}
#message-page #composer .content-width-constraint {
max-width: var(--max-content-width);
}
#message-page #composer .input-width-constraint {
max-width: var(--max-input-width);
}
}
#message-page #message-container {
display: flex;
flex-direction: column;
align-items: center;
padding: var(--content-padding);
gap: var(--gap-between-tiles);
height: auto;
max-height: unset;
scroll-behavior: smooth;
}
.message-bubble {
display: flex;
width: 100%;
max-width: var(--max-content-width);
}
.message-bubble .main {
display: flex;
flex-direction: row;
background-color: var(--surface);
width: 100%;
max-width: var(--max-input-width);
overflow: hidden;
}
.message-bubble .main .text-container {
display: flex;
flex-direction: column;
overflow: hidden;
width: 100%;
flex: 1;
}
.message-bubble .main .button-container {
display: flex;
align-items: start;
}
.message-bubble .main button {
justify-content: center;
padding: 0px;
width: var(--control-height);
--surface: transparent;
}
.message-bubble .main .text-container {
padding: var(--control-padding);
}
.message-bubble .main .timestamp,
.message-bubble .main .sender-name {
font-size: 0.8rem;
opacity: 0.6;
}
.message-bubble .main .sender-name {
font-weight: bold;
}
.message-bubble .main .body {
word-break: break-word;
}
.message-bubble[sentbyuser] {
justify-content: flex-end;
}
.message-bubble[sentbyuser] {
align-items: flex-end;
}
.message-bubble[sentbyuser] .main {
flex-direction: row-reverse;
}
.message-bubble[sentbyuser] .main span {
text-align: right;
}
/* src/View/Components/chatEntry.css */
.chat-entry {
position: relative;
display: flex;
align-items: flex-end !important;
justify-content: start;
height: 8rem;
overflow: hidden;
}
.chat-entry h2 {
margin: 0px;
}
.chat-entry .shadow {
position: absolute;
left: -15px;
bottom: -45px;
font-size: 6rem;
opacity: 0.1;
white-space: nowrap;
}