/* 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: -80px; left: -80px; right: -80px; bottom: -80px; 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(150, 100%, 30%); --color-2: hsl(150, 100%, 25%); 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( 9deg, var(--color-1), var(--color-2) 30%, transparent 35%); } @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%); } } /* 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)); --surface: hsla(var(--hue), 80%, 30%, 5%); --surface-hover: hsla(var(--hue), 100%, 5%, 10%); --surface-active: hsla(var(--hue), 100%, 5%, 15%); } @media (prefers-color-scheme: dark) { [color]:not([color=standard]) { --accent-luma: var(--accent-luma-dark); --accent-text-luma: var(--accent-text-luma-dark); --surface: hsla(var(--hue), 100%, 95%, 5%); --surface-hover: hsla(var(--hue), 100%, 95%, 10%); --surface-active: hsla(var(--hue), 100%, 95%, 15%); } } [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), 90%) ); --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); } @media (min-width: 1024px) { [color]:not([color=standard]).background { --luma: var(--background-luma); --sat: 80%; background: hsl(var(--hue), var(--sat), var(--luma)); } @media (prefers-color-scheme: dark) { [color]:not([color=standard]).background { --luma: var(--background-luma-dark); --sat: 40%; } } [color=standard].background { background: var(--surface); } } [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%; --background-luma: 90%; --background-luma-dark: 10%; --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%; --background-luma: 85%; --background-luma-dark: 10%; --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%; --background-luma: 85%; --background-luma-dark: 9%; --subtle-luma: 95%; --subtle-luma-dark: 5%; } [color=lightblue] { --hue: 180; --accent-luma: 40%; --accent-luma-dark: 60%; --accent-text-luma: 0%; --accent-text-luma-dark: 0%; --background-luma: 85%; --background-luma-dark: 8%; --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%; --background-luma: 90%; --background-luma-dark: 10%; --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%; --background-luma: 90%; --background-luma-dark: 12%; --subtle-luma: 95%; --subtle-luma-dark: 5%; } /* src/coloredTile.css */ .colored-tile { position: relative; display: flex; align-items: flex-end !important; justify-content: start; overflow: hidden; } .colored-tile h2 { margin: 0px; } .colored-tile .shadow { position: absolute; left: -15px; bottom: -45px; font-size: 7rem; opacity: 0.1; white-space: nowrap; } /* 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: var(--control-height); } #chat-page > div, #chat-page > div > #ribbon, #chat-page > div > #ribbon > span, #chat-page > div > #main, #chat-page > div > #main > div, #chat-page > div > #main > div > .pane-wrapper > .pane, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar > span, #chat-page > div > #main > div > .pane-wrapper > .pane > .content { display: flex; } #chat-page > div { padding: 0px; overflow: hidden; } #chat-page > div > #main { width: calc(100% - var(--ribbon-size) - 1px); overflow-x: scroll; scroll-behavior: smooth; scroll-snap-type: x mandatory; } #chat-page #main > div, #chat-page > div > #main > div > .pane-wrapper, #chat-page > div > #main > div > .pane-wrapper > .pane, #chat-page > div > #main > div > .pane-wrapper > .pane > .content { width: 100%; height: 100%; flex: 1; } #chat-page > div > #main > div > .pane-wrapper, #chat-page > div > #main > div > .pane-wrapper > .pane { flex-direction: column; scroll-snap-align: center; min-width: 100%; } #chat-page > div > #main > div > .pane-wrapper > .pane:not(.side), #chat-page > div > #main > div > .pane-wrapper > .pane:not(.side) .content { animation: slide-up var(--animation-duration); } @media (min-width: 1024px) { #chat-page > div > #main > div > .pane-wrapper { min-width: unset; } #chat-page > div > #main > div > .pane-wrapper.side { max-width: 18rem; } } #chat-page > div > #main > div > .pane-wrapper > .pane > .content { flex-direction: column; overflow: auto; padding: var(--content-padding); } #chat-page #ribbon, #chat-page #main, #chat-page #main .content { flex-direction: column; } #chat-page > div > #ribbon, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar { align-items: center; } #chat-page > div > #ribbon { width: calc(var(--ribbon-size) + 1px); border-right: 1px solid var(--border); padding-bottom: var(--safe-area-bottom); } #chat-page > div > #ribbon > span, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar > span.ribbon { gap: var(--gap-between-tiles); padding: var(--gap-between-tiles); } #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar { justify-content: start; justify-content: space-between; } #chat-page > div > #ribbon > span { height: 100%; flex: 1; overflow-y: auto; flex-direction: column; justify-content: end; } #chat-page > div > #ribbon button, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar button { padding: 0px; width: var(--control-height); max-width: var(--control-height); height: var(--control-height); min-height: var(--control-height); align-items: center; justify-content: center; } #chat-page > div > #ribbon button.ribbon-button, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar button.ribbon-button { width: calc(var(--control-height) - 2 * var(--gap-between-tiles)); max-width: calc(var(--control-height) - 2 * var(--gap-between-tiles)); min-height: unset; height: calc(var(--control-height) - 2 * var(--gap-between-tiles)); color: var(--primary); } #chat-page > div > #ribbon button > .icon, #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar button > .icon { font-size: 1.1rem; } #chat-page > div > #ribbon > span { width: 100%; } #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar { height: var(--ribbon-size); overflow-x: auto; padding: 0px; } #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar > span.title { padding-left: var(--content-padding); } #chat-page > div > #main > div > .pane-wrapper > .pane > .toolbar :is(input, select, button) { height: 100%; flex: 1; } /* 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); border-left: 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 .tile.main { display: flex; flex-direction: row; align-items: start; padding: 0px; width: 100%; max-width: var(--max-input-width); overflow: hidden; } .message-bubble .tile.main .text-container { display: flex; flex-direction: column; overflow: hidden; width: 100%; flex: 1; } .message-bubble .tile.main .button-container { display: flex; width: var(--control-height); max-width: var(--control-height); } .message-bubble .tile.main button { justify-content: center; padding: 0px; width: 100%; --surface: transparent; } .message-bubble .tile.main .text-container { padding: var(--control-padding); } .message-bubble .tile.main .timestamp, .message-bubble .tile.main .timestamp .icon, .message-bubble .tile.main .sender-name { font-size: 0.8rem; opacity: 0.6; } .message-bubble .tile.main .timestamp { display: flex; align-items: center; gap: var(--gap-between-tiles); } .message-bubble .tile.main .timestamp .icon { display: none; } .message-bubble .tile.main .sender-name { font-weight: bold; } .message-bubble .tile.main .body { word-break: break-word; } .message-bubble[sentbyuser] { justify-content: flex-end; } .message-bubble[sentbyuser] { align-items: flex-end; } .message-bubble[sentbyuser] .tile.main, .message-bubble[sentbyuser] .tile.main .timestamp { flex-direction: row-reverse; } .message-bubble[sentbyuser] .tile.main .timestamp .icon { display: flex; } .message-bubble[sentbyuser] .tile.main span { text-align: right; } /* src/View/ChatPages/taskPage.css */ @media (max-width: 1024px) { #task-page #board-list { display: false; } #task-page #board-content { display: none; } #task-page[isshowingboard] #board-list { display: none; } #task-page[isshowingboard] #board-content { display: flex; } } /* src/View/Components/fileBrowser.css */ .file-browser { width: 100%; height: 100%; display: flex; overflow-x: scroll; overflow-y: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; } .file-browser > div { display: flex; flex-direction: column; width: 100%; min-width: 100%; flex: 0; scroll-snap-align: center; } .file-browser .scroll-area { flex: 1; width: 100%; height: 100%; overflow-y: auto; padding: var(--content-padding); } .file-browser .detail-button-wrapper { display: flex; justify-content: end; border-top: 1px solid var(--border); padding: var(--content-padding); } .file-browser .detail-button-wrapper button { max-width: 100%; } .file-browser code { width: 100%; height: 100%; font-size: .9rem; } @media (min-width: 640px) { .file-browser > div { width: 50%; min-width: 50%; flex: 1; } .file-browser .detail-button-wrapper { display: none; } }