/* 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 > div { display: flex; flex-direction: column; background-color: var(--surface); padding: var(--control-padding); width: 100%; max-width: var(--max-input-width); } .message-bubble .timestamp, .message-bubble .sender-name { font-size: 0.8rem; opacity: 0.6; } .message-bubble .sender-name { font-weight: bold; } .message-bubble .body { word-break: break-all; } .message-bubble[sentbyuser] { justify-content: flex-end; } .message-bubble[sentbyuser] { align-items: flex-end; } .message-bubble[sentbyuser] 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; }