From 9748930c1cce2f08d72e15b19f595e99a7e03f99 Mon Sep 17 00:00:00 2001 From: sairaj mote Date: Wed, 9 Mar 2022 23:49:54 +0530 Subject: [PATCH] UI/UX refresh --- components.js | 2693 ++++++++++++++++ css/back.png | Bin 0 -> 180070 bytes css/main.css | 1426 ++++---- css/main.min.css | 2 +- css/main.scss | 1609 ++++++---- index.html | 4408 +++++++++---------------- new.html | 7320 ------------------------------------------ script/components.js | 4174 ------------------------ 8 files changed, 6106 insertions(+), 15526 deletions(-) create mode 100644 components.js create mode 100644 css/back.png delete mode 100644 new.html delete mode 100644 script/components.js diff --git a/components.js b/components.js new file mode 100644 index 0000000..ec6768b --- /dev/null +++ b/components.js @@ -0,0 +1,2693 @@ +/*jshint esversion: 6 */ +const smButton = document.createElement('template') +smButton.innerHTML = ` + +
+ +
`; +customElements.define('sm-button', + class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(smButton.content.cloneNode(true)); + } + static get observedAttributes() { + return ['disabled']; + } + + get disabled() { + return this.hasAttribute('disabled'); + } + + set disabled(value) { + if (value) { + this.setAttribute('disabled', ''); + } else { + this.removeAttribute('disabled'); + } + } + focusIn() { + this.focus(); + } + + handleKeyDown(e) { + if (!this.hasAttribute('disabled') && (e.key === 'Enter' || e.key === ' ')) { + e.preventDefault(); + this.click(); + } + } + + connectedCallback() { + if (!this.hasAttribute('disabled')) { + this.setAttribute('tabindex', '0'); + } + this.setAttribute('role', 'button'); + this.addEventListener('keydown', this.handleKeyDown); + } + attributeChangedCallback(name) { + if (name === 'disabled') { + if (this.hasAttribute('disabled')) { + this.removeAttribute('tabindex'); + } else { + this.setAttribute('tabindex', '0'); + } + this.setAttribute('aria-disabled', this.hasAttribute('disabled')); + } + } + }) +const smForm = document.createElement('template'); +smForm.innerHTML = ` + +
+ +
+`; + +customElements.define('sm-form', class extends HTMLElement { + constructor() { + super() + this.attachShadow({ + mode: 'open' + }).append(smForm.content.cloneNode(true)) + + this.form = this.shadowRoot.querySelector('form'); + this.formElements + this.requiredElements + this.submitButton + this.resetButton + this.allRequiredValid = false; + + this.debounce = this.debounce.bind(this) + this._checkValidity = this._checkValidity.bind(this) + this.handleKeydown = this.handleKeydown.bind(this) + this.reset = this.reset.bind(this) + this.elementsChanged = this.elementsChanged.bind(this) + } + debounce(callback, wait) { + let timeoutId = null; + return (...args) => { + window.clearTimeout(timeoutId); + timeoutId = window.setTimeout(() => { + callback.apply(null, args); + }, wait); + }; + } + _checkValidity() { + this.allRequiredValid = this.requiredElements.every(elem => elem.isValid) + if (!this.submitButton) return; + if (this.allRequiredValid) { + this.submitButton.disabled = false; + } + else { + this.submitButton.disabled = true; + } + } + handleKeydown(e) { + if (e.key === 'Enter' && !e.target.tagName.includes('TEXTAREA')) { + if (this.allRequiredValid) { + if (this.submitButton) { + this.submitButton.click() + } + this.dispatchEvent(new CustomEvent('submit', { + bubbles: true, + composed: true, + })) + } + else { + this.requiredElements.find(elem => !elem.isValid).vibrate() + } + } + } + reset() { + this.formElements.forEach(elem => elem.reset()) + } + elementsChanged() { + this.formElements = [...this.querySelectorAll('sm-input, sm-textarea, sm-checkbox, tags-input, file-input, sm-switch, sm-radio')] + this.requiredElements = this.formElements.filter(elem => elem.hasAttribute('required')); + this.submitButton = this.querySelector('[variant="primary"], [type="submit"]'); + this.resetButton = this.querySelector('[type="reset"]'); + if (this.resetButton) { + this.resetButton.addEventListener('click', this.reset); + } + this._checkValidity() + } + connectedCallback() { + const slot = this.shadowRoot.querySelector('slot') + slot.addEventListener('slotchange', this.elementsChanged) + this.addEventListener('input', this.debounce(this._checkValidity, 100)); + this.addEventListener('keydown', this.debounce(this.handleKeydown, 100)); + } + disconnectedCallback() { + this.removeEventListener('input', this.debounce(this._checkValidity, 100)); + this.removeEventListener('keydown', this.debounce(this.handleKeydown, 100)); + } +}) + +const smInput = document.createElement('template') +smInput.innerHTML = ` + +
+ + +
+`; +customElements.define('sm-input', + class extends HTMLElement { + + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(smInput.content.cloneNode(true)); + + this.inputParent = this.shadowRoot.querySelector('.input'); + this.input = this.shadowRoot.querySelector('input'); + this.clearBtn = this.shadowRoot.querySelector('.clear'); + this.label = this.shadowRoot.querySelector('.label'); + this.feedbackText = this.shadowRoot.querySelector('.feedback-text'); + this.outerContainer = this.shadowRoot.querySelector('.outer-container'); + this._helperText = ''; + this._errorText = ''; + this.isRequired = false; + this.validationFunction = undefined; + this.reflectedAttributes = ['value', 'required', 'disabled', 'type', 'inputmode', 'readonly', 'min', 'max', 'pattern', 'minlength', 'maxlength', 'step']; + + this.reset = this.reset.bind(this); + this.clear = this.clear.bind(this); + this.focusIn = this.focusIn.bind(this); + this.focusOut = this.focusOut.bind(this); + this.fireEvent = this.fireEvent.bind(this); + this.checkInput = this.checkInput.bind(this); + this.vibrate = this.vibrate.bind(this); + } + + static get observedAttributes() { + return ['value', 'placeholder', 'required', 'disabled', 'type', 'inputmode', 'readonly', 'min', 'max', 'pattern', 'minlength', 'maxlength', 'step', 'helper-text', 'error-text', 'hiderequired']; + } + + get value() { + return this.input.value; + } + + set value(val) { + this.input.value = val; + this.checkInput(); + this.fireEvent(); + } + + get placeholder() { + return this.getAttribute('placeholder'); + } + + set placeholder(val) { + this.setAttribute('placeholder', val); + } + + get type() { + return this.getAttribute('type'); + } + + set type(val) { + this.setAttribute('type', val); + } + + get validity() { + return this.input.validity; + } + + get disabled() { + return this.hasAttribute('disabled'); + } + set disabled(value) { + if (value) + this.inputParent.classList.add('disabled'); + else + this.inputParent.classList.remove('disabled'); + } + get readOnly() { + return this.hasAttribute('readonly'); + } + set readOnly(value) { + if (value) { + this.setAttribute('readonly', ''); + } else { + this.removeAttribute('readonly'); + } + } + set customValidation(val) { + this.validationFunction = val; + } + set errorText(val) { + this._errorText = val; + } + set helperText(val) { + this._helperText = val; + } + get isValid() { + if (this.input.value !== '') { + const _isValid = this.input.checkValidity(); + let _customValid = true; + if (this.validationFunction) { + _customValid = Boolean(this.validationFunction(this.input.value)); + } + if (_isValid && _customValid) { + this.feedbackText.classList.remove('error'); + this.feedbackText.classList.add('success'); + this.feedbackText.textContent = ''; + } else { + if (this._errorText) { + this.feedbackText.classList.add('error'); + this.feedbackText.classList.remove('success'); + this.feedbackText.innerHTML = ` + + ${this._errorText} + `; + } + } + return (_isValid && _customValid); + } + } + reset() { + this.value = ''; + } + clear() { + this.value = ''; + this.input.focus(); + } + + focusIn() { + this.input.focus(); + } + + focusOut() { + this.input.blur(); + } + + fireEvent() { + let event = new Event('input', { + bubbles: true, + cancelable: true, + composed: true + }); + this.dispatchEvent(event); + } + + checkInput(e) { + if (!this.hasAttribute('readonly')) { + if (this.input.value.trim() !== '') { + this.clearBtn.classList.remove('hide'); + } else { + this.clearBtn.classList.add('hide'); + } + } + if (!this.hasAttribute('placeholder') || this.getAttribute('placeholder').trim() === '') return; + if (this.input.value !== '') { + if (this.animate) + this.inputParent.classList.add('animate-placeholder'); + else + this.label.classList.add('hide'); + } else { + if (this.animate) + this.inputParent.classList.remove('animate-placeholder'); + else + this.label.classList.remove('hide'); + this.feedbackText.textContent = ''; + } + } + vibrate() { + this.outerContainer.animate([ + { transform: 'translateX(-1rem)' }, + { transform: 'translateX(1rem)' }, + { transform: 'translateX(-0.5rem)' }, + { transform: 'translateX(0.5rem)' }, + { transform: 'translateX(0)' }, + ], { + duration: 300, + easing: 'ease' + }); + } + + + connectedCallback() { + this.animate = this.hasAttribute('animate'); + this.setAttribute('role', 'textbox'); + this.input.addEventListener('input', this.checkInput); + this.clearBtn.addEventListener('click', this.clear); + } + + attributeChangedCallback(name, oldValue, newValue) { + if (oldValue !== newValue) { + if (this.reflectedAttributes.includes(name)) { + if (this.hasAttribute(name)) { + this.input.setAttribute(name, this.getAttribute(name) ? this.getAttribute(name) : ''); + } + else { + this.input.removeAttribute(name); + } + } + if (name === 'placeholder') { + this.label.textContent = newValue; + this.setAttribute('aria-label', newValue); + } + else if (this.hasAttribute('value')) { + this.checkInput(); + } + else if (name === 'type') { + if (this.hasAttribute('type') && this.getAttribute('type') === 'number') { + this.input.setAttribute('inputmode', 'numeric'); + } + } + else if (name === 'helper-text') { + this._helperText = this.getAttribute('helper-text'); + } + else if (name === 'error-text') { + this._errorText = this.getAttribute('error-text'); + } + else if (name === 'required') { + this.isRequired = this.hasAttribute('required'); + if (this.isRequired) { + this.setAttribute('aria-required', 'true'); + } + else { + this.setAttribute('aria-required', 'false'); + } + } + else if (name === 'readonly') { + if (this.hasAttribute('readonly')) { + this.inputParent.classList.add('readonly'); + } else { + this.inputParent.classList.remove('readonly'); + } + } + else if (name === 'disabled') { + if (this.hasAttribute('disabled')) { + this.inputParent.classList.add('disabled'); + } + else { + this.inputParent.classList.remove('disabled'); + } + } + } + } + disconnectedCallback() { + this.input.removeEventListener('input', this.checkInput); + this.clearBtn.removeEventListener('click', this.clear); + } + }) +const smNotifications = document.createElement('template') +smNotifications.innerHTML = ` + +
+`; + + +customElements.define('sm-notifications', class extends HTMLElement { + constructor() { + super(); + this.shadow = this.attachShadow({ + mode: 'open' + }).append(smNotifications.content.cloneNode(true)) + + this.notificationPanel = this.shadowRoot.querySelector('.notification-panel') + this.animationOptions = { + duration: 300, + fill: "forwards", + easing: "cubic-bezier(0.175, 0.885, 0.32, 1.275)" + } + + this.push = this.push.bind(this) + this.createNotification = this.createNotification.bind(this) + this.removeNotification = this.removeNotification.bind(this) + this.clearAll = this.clearAll.bind(this) + + } + + randString(length) { + let result = ''; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (let i = 0; i < length; i++) + result += characters.charAt(Math.floor(Math.random() * characters.length)); + return result; + } + + createNotification(message, options = {}) { + const { pinned = false, icon = '' } = options; + const notification = document.createElement('output') + notification.id = this.randString(8) + notification.classList.add('notification'); + let composition = ``; + composition += ` +
${icon}
+

${message}

+ `; + if (pinned) { + notification.classList.add('pinned'); + composition += ` + + `; + } + notification.innerHTML = composition; + return notification; + } + + push(message, options = {}) { + const notification = this.createNotification(message, options); + this.notificationPanel.append(notification); + notification.animate([ + { + transform: `translateY(1rem)`, + opacity: '0' + }, + { + transform: `none`, + opacity: '1' + }, + ], this.animationOptions); + return notification.id; + } + + removeNotification(notification) { + notification.animate([ + { + transform: `none`, + opacity: '1' + }, + { + transform: `translateY(0.5rem)`, + opacity: '0' + } + ], this.animationOptions).onfinish = () => { + notification.remove(); + }; + } + + clearAll() { + Array.from(this.notificationPanel.children).forEach(child => { + this.removeNotification(child); + }); + } + + connectedCallback() { + this.notificationPanel.addEventListener('click', e => { + if (e.target.closest('.close')) { + this.removeNotification(e.target.closest('.notification')); + } + }); + + const observer = new MutationObserver(mutationList => { + mutationList.forEach(mutation => { + if (mutation.type === 'childList') { + if (mutation.addedNodes.length && !mutation.addedNodes[0].classList.contains('pinned')) { + setTimeout(() => { + this.removeNotification(mutation.addedNodes[0]); + }, 5000); + } + } + }); + }); + observer.observe(this.notificationPanel, { + childList: true, + }); + } +}); + +class Stack { + constructor() { + this.items = []; + } + push(element) { + this.items.push(element); + } + pop() { + if (this.items.length == 0) + return "Underflow"; + return this.items.pop(); + } + peek() { + return this.items[this.items.length - 1]; + } +} +const popupStack = new Stack(); + +const smPopup = document.createElement('template'); +smPopup.innerHTML = ` + + +`; +customElements.define('sm-popup', class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(smPopup.content.cloneNode(true)); + + this.allowClosing = false; + this.isOpen = false; + this.pinned = false; + this.offset = 0; + this.touchStartY = 0; + this.touchEndY = 0; + this.touchStartTime = 0; + this.touchEndTime = 0; + this.touchEndAnimation = undefined; + this.focusable + this.autoFocus + this.mutationObserver + + this.popupContainer = this.shadowRoot.querySelector('.popup-container'); + this.backdrop = this.shadowRoot.querySelector('.background'); + this.popup = this.shadowRoot.querySelector('.popup'); + this.popupBodySlot = this.shadowRoot.querySelector('.popup-body slot'); + this.popupHeader = this.shadowRoot.querySelector('.popup-top'); + + this.resumeScrolling = this.resumeScrolling.bind(this); + this.setStateOpen = this.setStateOpen.bind(this); + this.show = this.show.bind(this); + this.hide = this.hide.bind(this); + this.handleTouchStart = this.handleTouchStart.bind(this); + this.handleTouchMove = this.handleTouchMove.bind(this); + this.handleTouchEnd = this.handleTouchEnd.bind(this); + this.detectFocus = this.detectFocus.bind(this); + } + + static get observedAttributes() { + return ['open']; + } + + get open() { + return this.isOpen; + } + + animateTo(element, keyframes, options) { + const anime = element.animate(keyframes, { ...options, fill: 'both' }) + anime.finished.then(() => { + anime.commitStyles() + anime.cancel() + }) + return anime + } + + resumeScrolling() { + const scrollY = document.body.style.top; + window.scrollTo(0, parseInt(scrollY || '0') * -1); + document.body.style.overflow = ''; + document.body.style.top = 'initial'; + } + + setStateOpen() { + if (!this.isOpen || this.offset) { + const animOptions = { + duration: 300, + easing: 'ease' + } + const initialAnimation = (window.innerWidth > 640) ? 'scale(1.1)' : `translateY(${this.offset ? `${this.offset}px` : '100%'})` + this.animateTo(this.popup, [ + { + opacity: this.offset ? 1 : 0, + transform: initialAnimation + }, + { + opacity: 1, + transform: 'none' + }, + ], animOptions) + + } + } + + show(options = {}) { + const { pinned = false } = options; + if (!this.isOpen) { + const animOptions = { + duration: 300, + easing: 'ease' + } + popupStack.push({ + popup: this, + permission: pinned + }); + if (popupStack.items.length > 1) { + this.animateTo(popupStack.items[popupStack.items.length - 2].popup.shadowRoot.querySelector('.popup'), [ + { transform: 'none' }, + { transform: (window.innerWidth > 640) ? 'scale(0.95)' : 'translateY(-1.5rem)' }, + ], animOptions) + } + this.popupContainer.classList.remove('hide'); + if (!this.offset) + this.backdrop.animate([ + { opacity: 0 }, + { opacity: 1 }, + ], animOptions) + this.setStateOpen() + this.dispatchEvent( + new CustomEvent("popupopened", { + bubbles: true, + detail: { + popup: this, + } + }) + ); + this.pinned = pinned; + this.isOpen = true; + document.body.style.overflow = 'hidden'; + document.body.style.top = `-${window.scrollY}px`; + const elementToFocus = this.autoFocus || this.focusable[0]; + elementToFocus.tagName.includes('SM-') ? elementToFocus.focusIn() : elementToFocus.focus(); + if (!this.hasAttribute('open')) + this.setAttribute('open', ''); + } + } + hide() { + const animOptions = { + duration: 150, + easing: 'ease' + } + this.backdrop.animate([ + { opacity: 1 }, + { opacity: 0 } + ], animOptions) + this.animateTo(this.popup, [ + { + opacity: 1, + transform: (window.innerWidth > 640) ? 'none' : `translateY(${this.offset ? `${this.offset}px` : '0'})` + }, + { + opacity: 0, + transform: (window.innerWidth > 640) ? 'scale(1.1)' : 'translateY(100%)' + }, + ], animOptions).finished + .finally(() => { + this.popupContainer.classList.add('hide'); + this.popup.style = '' + this.removeAttribute('open'); + + if (this.forms.length) { + this.forms.forEach(form => form.reset()); + } + this.dispatchEvent( + new CustomEvent("popupclosed", { + bubbles: true, + detail: { + popup: this, + } + }) + ); + this.isOpen = false; + }) + popupStack.pop(); + if (popupStack.items.length) { + this.animateTo(popupStack.items[popupStack.items.length - 1].popup.shadowRoot.querySelector('.popup'), [ + { transform: (window.innerWidth > 640) ? 'scale(0.95)' : 'translateY(-1.5rem)' }, + { transform: 'none' }, + ], animOptions) + + } else { + this.resumeScrolling(); + } + } + + handleTouchStart(e) { + this.offset = 0 + this.popupHeader.addEventListener('touchmove', this.handleTouchMove, { passive: true }); + this.popupHeader.addEventListener('touchend', this.handleTouchEnd, { passive: true }); + this.touchStartY = e.changedTouches[0].clientY; + this.touchStartTime = e.timeStamp; + } + + handleTouchMove(e) { + if (this.touchStartY < e.changedTouches[0].clientY) { + this.offset = e.changedTouches[0].clientY - this.touchStartY; + this.touchEndAnimation = window.requestAnimationFrame(() => { + this.popup.style.transform = `translateY(${this.offset}px)`; + }); + } + } + + handleTouchEnd(e) { + this.touchEndTime = e.timeStamp; + cancelAnimationFrame(this.touchEndAnimation); + this.touchEndY = e.changedTouches[0].clientY; + this.threshold = this.popup.getBoundingClientRect().height * 0.3; + if (this.touchEndTime - this.touchStartTime > 200) { + if (this.touchEndY - this.touchStartY > this.threshold) { + if (this.pinned) { + this.setStateOpen(); + return; + } else + this.hide(); + } else { + this.setStateOpen(); + } + } else { + if (this.touchEndY > this.touchStartY) + if (this.pinned) { + this.setStateOpen(); + return; + } + else + this.hide(); + } + this.popupHeader.removeEventListener('touchmove', this.handleTouchMove, { passive: true }); + this.popupHeader.removeEventListener('touchend', this.handleTouchEnd, { passive: true }); + } + + + detectFocus(e) { + if (e.key === 'Tab') { + const lastElement = this.focusable[this.focusable.length - 1]; + const firstElement = this.focusable[0]; + if (e.shiftKey && document.activeElement === firstElement) { + e.preventDefault(); + lastElement.tagName.includes('SM-') ? lastElement.focusIn() : lastElement.focus(); + } else if (!e.shiftKey && document.activeElement === lastElement) { + e.preventDefault(); + firstElement.tagName.includes('SM-') ? firstElement.focusIn() : firstElement.focus(); + } + } + } + + updateFocusableList() { + this.focusable = this.querySelectorAll('sm-button:not([disabled]), button:not([disabled]), [href], sm-input, input:not([readonly]), sm-select, select, sm-checkbox, sm-textarea, textarea, [tabindex]:not([tabindex="-1"])') + this.autoFocus = this.querySelector('[autofocus]') + } + + connectedCallback() { + this.popupBodySlot.addEventListener('slotchange', () => { + this.forms = this.querySelectorAll('sm-form'); + this.updateFocusableList() + }); + this.popupContainer.addEventListener('mousedown', e => { + if (e.target === this.popupContainer && !this.pinned) { + if (this.pinned) { + this.setStateOpen(); + } else + this.hide(); + } + }); + + const resizeObserver = new ResizeObserver(entries => { + for (let entry of entries) { + if (entry.contentBoxSize) { + // Firefox implements `contentBoxSize` as a single content rect, rather than an array + const contentBoxSize = Array.isArray(entry.contentBoxSize) ? entry.contentBoxSize[0] : entry.contentBoxSize; + this.threshold = contentBoxSize.blockSize.height * 0.3; + } else { + this.threshold = entry.contentRect.height * 0.3; + } + } + }); + resizeObserver.observe(this); + + this.mutationObserver = new MutationObserver(entries => { + this.updateFocusableList() + }) + this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true }) + + this.addEventListener('keydown', this.detectFocus); + this.popupHeader.addEventListener('touchstart', this.handleTouchStart, { passive: true }); + } + disconnectedCallback() { + this.removeEventListener('keydown', this.detectFocus); + resizeObserver.unobserve(); + this.mutationObserver.disconnect() + this.popupHeader.removeEventListener('touchstart', this.handleTouchStart, { passive: true }); + } + attributeChangedCallback(name) { + if (name === 'open') { + if (this.hasAttribute('open')) { + this.show(); + } + } + } +}); +const smSwitch = document.createElement('template') +smSwitch.innerHTML = ` + +` + +customElements.define('sm-switch', class extends HTMLElement { + constructor() { + super() + this.attachShadow({ + mode: 'open' + }).append(smSwitch.content.cloneNode(true)) + this.switch = this.shadowRoot.querySelector('.switch'); + this.input = this.shadowRoot.querySelector('input') + this.isChecked = false + this.isDisabled = false + + this.dispatch = this.dispatch.bind(this) + } + + static get observedAttributes() { + return ['disabled', 'checked'] + } + + get disabled() { + return this.isDisabled + } + + set disabled(val) { + if (val) { + this.setAttribute('disabled', '') + } else { + this.removeAttribute('disabled') + } + } + + get checked() { + return this.isChecked + } + + set checked(value) { + if (value) { + this.setAttribute('checked', '') + } else { + this.removeAttribute('checked') + } + } + + reset() { + + } + + dispatch() { + this.dispatchEvent(new CustomEvent('change', { + bubbles: true, + composed: true, + detail: { + value: this.isChecked + } + })) + } + + connectedCallback() { + this.addEventListener('keydown', e => { + if (e.key === ' ' && !this.isDisabled) { + e.preventDefault() + this.input.click() + } + }) + this.input.addEventListener('click', e => { + if (this.input.checked) + this.checked = true + else + this.checked = false + this.dispatch() + }) + } + attributeChangedCallback(name, oldValue, newValue) { + if (oldValue !== newValue) { + if (name === 'disabled') { + if (this.hasAttribute('disabled')) { + this.disabled = true + } + else { + this.disabled = false + } + } + else if (name === 'checked') { + if (this.hasAttribute('checked')) { + this.isChecked = true + this.input.checked = true + } + else { + this.isChecked = false + this.input.checked = false + } + } + } + } + +}) +const themeToggle = document.createElement('template'); +themeToggle.innerHTML = ` + + +`; + +class ThemeToggle extends HTMLElement { + constructor() { + super(); + + this.attachShadow({ + mode: 'open' + }).append(themeToggle.content.cloneNode(true)); + + this.isChecked = false; + this.hasTheme = 'light'; + + this.toggleState = this.toggleState.bind(this); + this.fireEvent = this.fireEvent.bind(this); + this.handleThemeChange = this.handleThemeChange.bind(this); + } + static get observedAttributes() { + return ['checked']; + } + + daylight() { + this.hasTheme = 'light'; + document.body.dataset.theme = 'light'; + this.setAttribute('aria-checked', 'false'); + } + + nightlight() { + this.hasTheme = 'dark'; + document.body.dataset.theme = 'dark'; + this.setAttribute('aria-checked', 'true'); + } + + toggleState() { + this.toggleAttribute('checked'); + this.fireEvent(); + } + handleKeyDown(e) { + if (e.key === ' ') { + this.toggleState(); + } + } + handleThemeChange(e) { + if (e.detail.theme !== this.hasTheme) { + if (e.detail.theme === 'dark') { + this.setAttribute('checked', ''); + } + else { + this.removeAttribute('checked'); + } + } + } + + fireEvent() { + this.dispatchEvent( + new CustomEvent('themechange', { + bubbles: true, + composed: true, + detail: { + theme: this.hasTheme + } + }) + ); + } + + connectedCallback() { + this.setAttribute('role', 'switch'); + this.setAttribute('aria-label', 'theme toggle'); + if (localStorage.getItem(`${window.location.hostname}-theme`) === "dark") { + this.nightlight(); + this.setAttribute('checked', ''); + } else if (localStorage.getItem(`${window.location.hostname}-theme`) === "light") { + this.daylight(); + this.removeAttribute('checked'); + } + else { + if (window.matchMedia(`(prefers-color-scheme: dark)`).matches) { + this.nightlight(); + this.setAttribute('checked', ''); + } else { + this.daylight(); + this.removeAttribute('checked'); + } + } + this.addEventListener("click", this.toggleState); + this.addEventListener("keydown", this.handleKeyDown); + document.addEventListener('themechange', this.handleThemeChange); + } + + disconnectedCallback() { + this.removeEventListener("click", this.toggleState); + this.removeEventListener("keydown", this.handleKeyDown); + document.removeEventListener('themechange', this.handleThemeChange); + } + + attributeChangedCallback(name, oldVal, newVal) { + if (name === 'checked') { + if (this.hasAttribute('checked')) { + this.nightlight(); + localStorage.setItem(`${window.location.hostname}-theme`, "dark"); + } else { + this.daylight(); + localStorage.setItem(`${window.location.hostname}-theme`, "light"); + } + } + } +} + +window.customElements.define('theme-toggle', ThemeToggle); + +const smCopy = document.createElement('template'); +smCopy.innerHTML = ` + +
+

+ +
+`; +customElements.define('sm-copy', + class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(smCopy.content.cloneNode(true)); + + this.copyContent = this.shadowRoot.querySelector('.copy-content'); + this.copyButton = this.shadowRoot.querySelector('.copy-button'); + + this.copy = this.copy.bind(this); + } + static get observedAttributes() { + return ['value']; + } + set value(val) { + this.setAttribute('value', val); + } + get value() { + return this.getAttribute('value'); + } + fireEvent() { + this.dispatchEvent( + new CustomEvent('copy', { + composed: true, + bubbles: true, + cancelable: true, + }) + ); + } + copy() { + navigator.clipboard.writeText(this.copyContent.textContent) + .then(res => this.fireEvent()) + .catch(err => console.error(err)); + } + connectedCallback() { + this.copyButton.addEventListener('click', this.copy); + } + attributeChangedCallback(name, oldValue, newValue) { + if (name === 'value') { + this.copyContent.textContent = newValue; + } + } + disconnectedCallback() { + this.copyButton.removeEventListener('click', this.copy); + } + }); +const spinner = document.createElement('template'); +spinner.innerHTML = ` + + + +`; +class SpinnerLoader extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(spinner.content.cloneNode(true)); + } +} +window.customElements.define('sm-spinner', SpinnerLoader); + +//Color Grid +const colorGrid = document.createElement('template'); +colorGrid.innerHTML = ` + +
+
`; + +customElements.define('color-grid', + class extends HTMLElement { + constructor() { + super() + this.attachShadow({ + mode: 'open' + }).append(colorGrid.content.cloneNode(true)) + + this.colorArray = [] + this.container = this.shadowRoot.querySelector('.color-tile-container') + this.handleChange = this.handleChange.bind(this) + this.setCheckMark = this.setCheckMark.bind(this) + } + + set colors(arr) { + this.colorArray = arr + this.renderTiles() + } + + set selectedColor(color) { + if (this.colorArray.includes(color) && this.container.querySelector(`[data-color="${color}"]`)) { + const selectedTile = this.container.querySelector(`[data-color="${color}"]`) + if (selectedTile) { + selectedTile.querySelector('input').checked = true + this.setCheckMark(selectedTile) + } + } + } + + randString(length) { + let result = ''; + let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + + for (let i = 0; i < length; i++) + result += characters.charAt(Math.floor(Math.random() * characters.length)); + return result; + } + + renderTiles() { + this.container.innerHTML = '' + const frag = document.createDocumentFragment() + const groupName = this.randString(6) + this.colorArray.forEach(color => { + const label = document.createElement('label') + label.classList.add('color-tile') + label.setAttribute('data-color', color) + if (color.includes('--')) + label.setAttribute('style', `background-color: var(${color})`) + else + label.setAttribute('style', `background-color: ${color}`) + label.innerHTML = ` + + ` + frag.append(label) + }) + this.container.append(frag) + } + setCheckMark(target) { + target.parentNode.querySelectorAll('.checkmark').forEach(checkmark => checkmark.remove()) + const checkMark = document.createElement('div') + checkMark.classList.add('checkmark') + checkMark.innerHTML = ` + + ` + target.append(checkMark) + } + + handleChange(e) { + const clickedTile = e.target.closest('.color-tile') + this.setCheckMark(clickedTile) + const clickedTileColor = clickedTile.dataset.color + const tileSelected = new CustomEvent('colorselected', { + bubbles: true, + composed: true, + detail: { + value: clickedTileColor, + } + }) + this.dispatchEvent(tileSelected) + } + + connectedCallback() { + this.container.addEventListener('change', this.handleChange) + } + + disconnectedCallback() { + this.container.removeEventListener('change', this.handleChange) + } + }) +const stripSelect = document.createElement('template'); +stripSelect.innerHTML = ` + +
+
+ +
+ +
+ +
+
+ +`; +customElements.define('strip-select', class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(stripSelect.content.cloneNode(true)); + this.stripSelect = this.shadowRoot.querySelector('.strip-select'); + this.slottedOptions = undefined; + this._value = undefined; + this.scrollDistance = 0; + + this.scrollLeft = this.scrollLeft.bind(this); + this.scrollRight = this.scrollRight.bind(this); + this.fireEvent = this.fireEvent.bind(this); + } + get value() { + return this._value; + } + scrollLeft() { + this.stripSelect.scrollBy({ + left: -this.scrollDistance, + behavior: 'smooth' + }); + } + + scrollRight() { + this.stripSelect.scrollBy({ + left: this.scrollDistance, + behavior: 'smooth' + }); + } + fireEvent() { + this.dispatchEvent( + new CustomEvent("change", { + bubbles: true, + composed: true, + detail: { + value: this._value + } + }) + ); + } + connectedCallback() { + this.setAttribute('role', 'listbox'); + + const slot = this.shadowRoot.querySelector('slot'); + const coverLeft = this.shadowRoot.querySelector('.cover--left'); + const coverRight = this.shadowRoot.querySelector('.cover--right'); + const navButtonLeft = this.shadowRoot.querySelector('.nav-button--left'); + const navButtonRight = this.shadowRoot.querySelector('.nav-button--right'); + slot.addEventListener('slotchange', e => { + const assignedElements = slot.assignedElements(); + assignedElements.forEach(elem => { + if (elem.hasAttribute('selected')) { + elem.setAttribute('active', ''); + this._value = elem.value; + } + }); + if (!this.hasAttribute('multiline')) { + if (assignedElements.length > 0) { + firstOptionObserver.observe(slot.assignedElements()[0]); + lastOptionObserver.observe(slot.assignedElements()[slot.assignedElements().length - 1]); + } + else { + navButtonLeft.classList.add('hide'); + navButtonRight.classList.add('hide'); + coverLeft.classList.add('hide'); + coverRight.classList.add('hide'); + firstOptionObserver.disconnect(); + lastOptionObserver.disconnect(); + } + } + }); + const resObs = new ResizeObserver(entries => { + entries.forEach(entry => { + if (entry.contentBoxSize) { + // Firefox implements `contentBoxSize` as a single content rect, rather than an array + const contentBoxSize = Array.isArray(entry.contentBoxSize) ? entry.contentBoxSize[0] : entry.contentBoxSize; + + this.scrollDistance = contentBoxSize.inlineSize * 0.6; + } else { + this.scrollDistance = entry.contentRect.width * 0.6; + } + }); + }); + resObs.observe(this); + this.stripSelect.addEventListener('option-clicked', e => { + if (this._value !== e.target.value) { + this._value = e.target.value; + slot.assignedElements().forEach(elem => elem.removeAttribute('active')); + e.target.setAttribute('active', ''); + e.target.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "center" }); + this.fireEvent(); + } + }); + const firstOptionObserver = new IntersectionObserver(entries => { + entries.forEach(entry => { + if (entry.isIntersecting) { + navButtonLeft.classList.add('hide'); + coverLeft.classList.add('hide'); + } + else { + navButtonLeft.classList.remove('hide'); + coverLeft.classList.remove('hide'); + } + }); + }, + { + threshold: 0.9, + root: this + }); + const lastOptionObserver = new IntersectionObserver(entries => { + entries.forEach(entry => { + if (entry.isIntersecting) { + navButtonRight.classList.add('hide'); + coverRight.classList.add('hide'); + } + else { + navButtonRight.classList.remove('hide'); + coverRight.classList.remove('hide'); + } + }); + }, + { + threshold: 0.9, + root: this + }); + navButtonLeft.addEventListener('click', this.scrollLeft); + navButtonRight.addEventListener('click', this.scrollRight); + } + disconnectedCallback() { + navButtonLeft.removeEventListener('click', this.scrollLeft); + navButtonRight.removeEventListener('click', this.scrollRight); + } +}); + +//Strip option +const stripOption = document.createElement('template'); +stripOption.innerHTML = ` + + +`; +customElements.define('strip-option', class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: 'open' + }).append(stripOption.content.cloneNode(true)); + this._value = undefined; + this.radioButton = this.shadowRoot.querySelector('input'); + + this.fireEvent = this.fireEvent.bind(this); + this.handleKeyDown = this.handleKeyDown.bind(this); + } + get value() { + return this._value; + } + fireEvent() { + this.dispatchEvent( + new CustomEvent("option-clicked", { + bubbles: true, + composed: true, + detail: { + value: this._value + } + }) + ); + } + handleKeyDown(e) { + if (e.key === 'Enter' || e.key === 'Space') { + this.fireEvent(); + } + } + connectedCallback() { + this.setAttribute('role', 'option'); + this.setAttribute('tabindex', '0'); + this._value = this.getAttribute('value'); + this.addEventListener('click', this.fireEvent); + this.addEventListener('keydown', this.handleKeyDown); + } + disconnectedCallback() { + this.removeEventListener('click', this.fireEvent); + this.removeEventListener('keydown', this.handleKeyDown); + } +}); +const smTextarea = document.createElement('template') +smTextarea.innerHTML = ` + + +`; +customElements.define('sm-textarea', + class extends HTMLElement { + constructor() { + super() + this.attachShadow({ + mode: 'open' + }).append(smTextarea.content.cloneNode(true)) + + this.textarea = this.shadowRoot.querySelector('textarea') + this.textareaBox = this.shadowRoot.querySelector('.textarea') + this.placeholder = this.shadowRoot.querySelector('.placeholder') + this.reflectedAttributes = ['disabled', 'required', 'readonly', 'rows', 'minlength', 'maxlength'] + + this.reset = this.reset.bind(this) + this.focusIn = this.focusIn.bind(this) + this.fireEvent = this.fireEvent.bind(this) + this.checkInput = this.checkInput.bind(this) + } + static get observedAttributes() { + return ['disabled', 'value', 'placeholder', 'required', 'readonly', 'rows', 'minlength', 'maxlength'] + } + get value() { + return this.textarea.value + } + set value(val) { + this.setAttribute('value', val) + this.fireEvent() + } + get disabled() { + return this.hasAttribute('disabled') + } + set disabled(val) { + if (val) { + this.setAttribute('disabled', '') + } else { + this.removeAttribute('disabled') + } + } + get isValid() { + return this.textarea.checkValidity() + } + reset() { + this.setAttribute('value', '') + } + focusIn() { + this.textarea.focus() + } + fireEvent() { + let event = new Event('input', { + bubbles: true, + cancelable: true, + composed: true + }); + this.dispatchEvent(event); + } + checkInput() { + if (!this.hasAttribute('placeholder') || this.getAttribute('placeholder') === '') + return; + if (this.textarea.value !== '') { + if (this.hasAttribute('animate')) + this.textareaBox.classList.add('animate-placeholder') + else + this.placeholder.classList.add('hide') + + } else { + if (this.hasAttribute('animate')) + this.textareaBox.classList.remove('animate-placeholder') + else + this.placeholder.classList.remove('hide') + } + } + connectedCallback() { + this.textarea.addEventListener('input', e => { + this.textareaBox.dataset.value = this.textarea.value + this.checkInput() + }) + } + attributeChangedCallback(name, oldValue, newValue) { + if (this.reflectedAttributes.includes(name)) { + if (this.hasAttribute(name)) { + this.textarea.setAttribute(name, this.getAttribute(name) ? this.getAttribute(name) : '') + } + else { + this.textContent.removeAttribute(name) + } + } + else if (name === 'placeholder') { + this.placeholder.textContent = this.getAttribute('placeholder') + } + else if (name === 'value') { + this.textarea.value = newValue; + this.textareaBox.dataset.value = newValue + this.checkInput() + } + } + }) \ No newline at end of file diff --git a/css/back.png b/css/back.png new file mode 100644 index 0000000000000000000000000000000000000000..d58f4bc0398c8ada7a893f677beb13b7d42f14be GIT binary patch literal 180070 zcmeGE_dA>K8$XVx)zVUQsg~l|)>gC>tyx-Ht7gR3+Iw#zZ52s=s?fOU*RjhLx_;Jq`k7Y|hfTut z;aRena8&hF>|s`Y3agW+6;+_owU79V>~X1|xNn%Nr^{V?`a0+{Og-$I+;Mo!+e?{O z;6ndgH@pe@b(v8Yg!K?Et)2JHf_izx9TI%q>@6FjNL64QZqmXr-oT@~V3W(yTstLk z>7Z-Le5!L-!b!T2W$5sdeWu)GpZU0!U&DvAlEEtXxt$b5$1N~>_H&RgLb<&Z;q-1X zgjf1Hcw+ymY-lFU!R(E*v}zTF8yA3A=)z`nAU>8t@4TYf>>q@DC%Xpk`W@2^&co@k+FavqE@M06U;h_ z_{npL7=N^@^J5yd6fE-MZmXQ0M@!;Ran48u9^7SA9M#iuC=7m^LS|U?F-ql?#~A%) zkyVyI#>Y7-wEu1bqsLsBbaH66;rGMKjkFOTDM5Sa@-i=f=V5gRltIN(teV%n?M^Oz znW$kJ`gX;adaae@e2E0T{nl*jAVwntqY`YXI4+bg7d6KVoG@sl&hY6Md#9tOUpst@ zIyrs=V*FYnl?QFd(aNN>JoZ3JGz;^k-p1xR-pu7;IFB%g!Y0?ur>{I}ay4#qEyMKZ z$^(x=5+_^edq}@(tCbaV|8Ga=(6Q5b+R>17D9--$oMhH7F|-8AB|ja7NuK+Tyy17Wgql4#r}h!6bb(l{?F|{H29}8!%azz? zEPPn}yMSL;Aj6-S(z4|ddYa=BM0~+3Dnv_lP$}0^z#zYYRJ3eurjn49$iY%}7ED!x zP<=WUZ|&^sG+6jp@N93VQ)cD2vUzVKl)K(KZkST}t*aJS**(W=0AqXq#Jxc<P%^5>j|S33DZa8=#SyMXuT&8XK>}D(w`^@CCZ?{?2wFk*bd?RWGVYx z_S@l~C8Ui|g~N^*S1Sgw6rLhQfvDz*po3}Qx9}~PBu4C<+D&Icm7x`Zltig|KX(&? zQ0@SKRMN@7mngtnfj+X%@1&YH9jJ^Ecv$Z4vRFL6Z5ESgp#Dvpov(CzF2B3`WCh%X zJoEaniOWPa5$?RiGH78t7pC~OFSAld5BKwHJu+Dj*50R}z*)tOJFzpR3VA8eTkoNB zT=Oe-`Fc+GbNdRqzSabl47O4oreIFHm0ZfHC}nH)#HDwz2H7wv!9}OauX*|O_R4Vk z>TS{bPapkEOX`*%^PAj%mpwjZq?aV+xkx4Rg5-6};@W3QfN9?lY+#AeLC3&B*NXR( zZ6&m)_6=}NM^1^h21-4i&dxTE4s4&QqEBl=4HbFEhnh%c$!Y1Uwd@GxWn2%;x-%#| zzqB<|Tg|5y6G<14Cc5Jrk#`5xC&AZc@*|>gsr&AQNLJ|*@DT5-=vTG7b7PMzwBI)E z{cgZAO0R!1=`C@0HC>mGFZNy

gVKUM}BTmEnORZqYldz0q4CwpXVZCP)ZL6&K?4 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ᥑj8!Y*m?lTI9$Iz)% z#9A&UZALeWAo?rL*l=bU^7vdz4bRhSe+#KQ{D5q`8fkugwuIE)cor_D@O0G=ZP+6? zdSsLlgYs8AFzcGL`@C=cUiFh`^>jUywA3|gt=t8eLOa}qft~Y(vusW1MTmMyB|G1J-J29m>7Ff+L{g@ z3s^ngeZAILxrnUrUDaB|BH2-uTmclY6X8~*$00#~zTaWz{gX3jpb1R~$FRaWzp>ap znAVF1)qR=Ln?NOMccGo~6LdztLDOKb;8rd`=U4Nw@+VGBfrNHX=tab=W)qU(L!CoI z@sA-UpuM8$vw7mX={*97^YF~1Z+`Kc^{xF=wtO5y20wQ}MMd#vxtiB-UM=s`^E^lK z9P4UQ?RSlBF$TnPr%Y7BROoV3GRCw%$Bw!wfJ@cXPi@JMgYMVCIKws0PFWybT+Ntd zZ+g{F*ApM%vgnKZ?xT-qbNdPNavYy%*C)rFS^~TwSJ?Mc7!XygTa^MuwBERWP+hY3 z>D}{H@?ep>8`7S*=iFvG_rt>3Bx|cI?vWN&`)+iH7&ENK43ba zPXJxTUni*SLG7s9v0Hstg$GNQ;#&y@`m0;GN?K^WzCpMNcZa}RgIZ00KfAkSv#UpR zce1x9i{s^_J1Az3io5a}taJVLP01%k%x8dB@|Ewlx1-L@n-=7f1>FX;n5HZi`=RuF z?w!JRxULc4-zZ-A_qsF#w`!tQbxjYV21DOsIgVy^F8o{-BQJ$d*`s-a%a<2^=sBLP z%{GZIHFZngs4;&VrE}bSWt_F&#2L^e>C{F zaNvG^b_@Nm@Uf;MDqTQN7_LUK>C;{76+lR#ZjZZ?8vr{A^-U9h#!$3>9?ZjH#y~qB z4Kt)YgSPly-W85qZ#|E$WC=^hn_suiT`%n)RheyOYHRy?0_}a6rv)bm4+P z8o>qUi=0Wd#vB8rmpG9 zsBe3ud$4|VP4c+59``o&ZQR?qIQ6%w+orsN+HoXpE56H*`-ab%n4NF^O_==DTtCXJ zkkQB*19l%?#W2#b<*>|nIquc)WAIF?PA{Fzpe-wS#M>LU^i8gbu< zIP$#yVn2`dypmO>ywBoLWGuZ1y&WYd=I8qN4n0z^E7@R(@g}9WQU8{;IZO-USJR6DX1aI^j6pww}9RiuqOF zxKhmP;bzr2p|2FpNc@l@3VN_NL5j5g(*0NzUD+GOkf1MuEar?X7sq`!v-P0n{rCp0 zXJRd?lNK$s`x5Tf`nn5QAmdF!a$et1(_b^kMeb@3=_ur;Lessjbm>e|--8H0htrV^ zQc3ffa9etYE@Zi3AItaaxq<#zgy=2k?ex)-m(&BW>g=u{v&) zx`7gV7z6d>)%F8At)lQ>;ou#XT>kddspjG^h`(hBv8!VoAMwH!1s;j{@pUq*`5$+Y zN<Z$7AAh*LSdX4{|qE^;;e%&5L1gUvjhb(- zG_NM5DGoP0;bQI!jp@I<@(U_PU)s`1$pJ|3LU;X_@F?>!?d3X>PiaThABwlVw3vNz2fi{&kHY zO*<}EnWWynh9#P(`s(oFue#3NNoG)iqNd#Y>1vnPU1yEyLc&j}OLvcyu4N*(<2QG) zoybY!T%CG9T9NV+WHF8R4_UIZlgd&&`bwwJgrsq_(55Ob5C&CM}SShfZstp(U25>zoq8r;ktt%DsVC@&zk=>|<#+b;q<%%Swt@#DT1b+~F7X4G zPn2lv--5mFmO`3f--BoW`!h^%nH+O%dN|mV$LT)C#yQXZPsTX7@P1T~!NKE^Ol13X%~J`BECfu ziVIFy8w<~S8)helh)w^utR#j;D5_HkB9~^2Lzp68wi!ZJD~4e8kI%mv=bG;FMsj{D z!ueX`KC-ofOZ+(ZxH`aia59T?z|4PnO&rg0IO<|Aa1AB}&-Uyz(k?U>7=;5W}68g%@)2 zwM}UkL+Dlk?I`5Mo8}ywmoDQY-ChNX{EzBI2OlwWSZKRb8IXMPx%O{30 z@YxX7-VmLJbE}VWIk3@;@$gG|S#2!!z2Mlr5~*e8Xg=x=t&&2=$1h4%bRe`U=;0RT zyUX;bt4l1XHAltPd{C#0CqhTBr+tU30$)0(OeK5(y=nB$&2ExceJn2RZe(%d(m7~51=^kN(zik6!2(oJniY?jTV1?)}7-E8P zP9^mLx$wU)g?DVt!h^w%$o>m2CmU(&)7X(;W_Q|1ZQx^cmMQZC0CQmw)?R%Zb#vx=4PUq1LM^Dl-r4&{NUVrttsbG+oRWlBV|U!1gfmf4A{x8h-~~V8XY9Q^O$hUsvZ8D9l+So_V(z*H}Sq_5Fhz;@=S{>A%E=h z508(qIdfvG8KIC1Bz1gti!e7%;NsjOe(|Q8C($kLj3!B`_^n)~f)KZPOovvG{u)lJ zx8}Z?IOAT17SgVKpN_%cTqScI;F5pMBei>L4{_%4~LodMpEdDVh8jl8`RTJdC~=vC4v_FLMpyQ)HrH} zee;#&6b0oq+k~&=htr9irS|7j>@Z=E;9)7s9fqnz6+3-@$?d{Q__gWpuixi|@fKM0 zpvpgMr@ti@vREj&Sm5+_d~21bA`mD$n)NPOAHE7U^^$5akaU;AQwmw-gh@ET<}dzT zBf`yPVxdx{A4w0lM-<Q^&~LCcOyJfb{(W~69q_#&KYN4Q+ZN+3vQhzn-c2Q}dot;Si+b}< zxN{0nY|EzT=NC8?XbgpPA_@)Q_gv6ez&ZW-(6vL4fH{QZP+8=b){2hXg$|112*4pt zuDZqVb+=TE3GEJg4HKPRm10VLY@-iTg-`c>4!3*0&$q2zhK-*G9Nvbts5@R0xLQ^X zI+sBTSVZ3Z1mBfj?R=ohKEmOXWM@r#(TsE$OE6ox=*fc-^r^|0cb?-Yur>S>d!1hK z(;j4@YX>Z+mypv?mq&%6qf`3p&+tEbMi2JX)PJ#$OjM{tYzxQO@`~x#qK#1DGKF~u zv4O$+a7if|_bBdfQ>Fq1`7yOXARu;~cOE7ZyT&@#z7lx*oKa>t@z78wtXxiWyFXvP z74`ZVy)@Iq#2wm!A~%dJPDnqCIHN(H)a*{(pxwQbNIc)yX z$_?hXd51NR9~W5o&TC2u&D7w`8074MPYu=C`VAXMixLV(DfCyFVwI9YSn^~a`rBVh z1i=(b7^X##abH5ssL)*!TykQ!Qt0LIuMBFdmw?_0YmV^zAjth;;tZQ+A_M2M=xN99 zh+O3|-N+W1&9MIA;|j&DBx{rE?ad3iaa~4IGE}M#u@{T7G?D)if$tX)6on6Zj7I&^ z);$K7e&v`MSBwm*R&Ukb5gzXjqVkDz$P>5g<06l>wf4OxHcFyPwo>7+68*>nyx7%? zEgKim%Z^GtoQO?}MqwJBm@}25Ir5DxG(9v~r`CLV!RtB2$F)3PJDxZ2AtD}$EQ#Gx zQc$FHntEKLAHmW2mWb(Enf3lZZ0?h4I;Z5v#b~+ax|tTHb0n5iC`*Z<#G?W>H4FQT z)Cdx>(hPQPy;FJO)mNX z^Yij+w}^seo_9^AHkz4YlW|EU4cmVz#aS>{ow;fCDFW^*H^#NkdgeO7vrt%EFSbLwYinw(HPO2NG5boOf+3h`CivRhQbPGZtm z7WDTe+zfVnypOxvPw8Ujt#)YNU$ARNCK4I9zn(=K>`C3F?vqrsYjdp`I=>*J$Y{-7 zqgv)jWb4J~st)Cd?Pf7>x^F*H_9>@ylyKPb|B-oJ#P7Ksa`Y?5L#{#RRw%|K!#9gG z2+F&{r~d3FA+F8xMU5TFje5n>%_4AX53L@iEs0z{tHbjU7$JE3PZY8iVx(wpvK|>H z7>^hagm&kOlFIxe_8oY1NZ!aP`Bp^Yd)830rK`loH%R??UVaPwbuymZ54t!bFEHud zFtiA9Blm+ol&w)feuaN5-xN(7e5I0Bb{Y~a%7Wdjnc&LsxP%((uMFy)<*LwczaDse zKw==c=nUmoNtSkWY^^WR$oXrwVkLx*-7po^toK;IN+!~<($OZYHxE%pVl()Wey}ZM zXVr>d=96k1D{~Q3%=n_INm)0#{xFT(`$9}}75Op2{YrR~#DH(iR(3VQv&TPX)(PDc4%Uav2`xp5N6V~h93RF! zNbXwf*C@%znu80Otvg{%Pd! ziO(d&*b*b;;+y^k_UuBFtzwChH@~P7Ns+P0Krb+LY$wAc*F$v(Y&_dL+l#IOzN&Cn zbSVpG6l`YWS z3|-fPiQR7W+Ws_P7Dzb4NlS>TjpEKwZeufy_2TrF%naMWOZ0m z0Au0Q8B}|ZXE%T4&_io5N?w87A66(Bz|nq89E5lZKd6$@OPht6%QEorvcAks8~Q9k zBJIl~LOy~HN#&=<*8&1>!@Jh|y^#(adKPmAjH8S71@!IbGlo`Ks^(WFBgz*@CW@95P5O?-?A#Yz8?L2EHNj>6bJB=zWfjxyi5(`P zfKK93;*hO+=Mnk?G|x6M@}x&TZRt$07Kw3pLiQ4{jl*A~lDJ#+W>6pgjvzB+N;F_z z+#0pu|ME7*H!r5SPnxai2Oo1ZwSY;eMLH}0-#&bnj^pNOF45KQDpr%L#uKY5Sq9H{e2F8ZBXUnZr&%|gXmp| zJy_N(T-epsYdpdmnc#is?;yUjEVEJ+s_eJb?CMRbhd#P+7f(r(M0-2itvk#2*ogYv z4VkJr%}Tk8a>}y{o~epa_&a|lm#y*LRK3$W|IHRZAb0YMlnxfh3*6-B7Z0s-vFPvw z>rKA-xrLllPoc@52x>zGV~Z&SAm_XcWwQUao`MEnL#nX1J&}MnuS~`(Z{>zpSnEwU z=iZ7|FH1Q=24^g2_-9#WdPI*3SuFQa@Y9M$U&%Ri8yM zRHiyZ!WLzQ4yP^4+jw7;TYUa44OwQ$TI{tuh|eB3>tgyAEOd8|8QL)8nf;Liv7oF+ z*q?|mH{_50sOz;=%*YwPP5R{Rge?}k(MDfub7^2nyUSub3SdZupkckEwPeZ@5^~uL zO}((}mCE$&Be@)4mmxHzUn&IqAib0KP!`rvn*`6&mtVal;v_0!cz8*dcM|UeJv(9{ zgDEX^)DLu~Sh4&O-#Kv**~9x;GP>M??r{qisn>BWx&)J}O}UEr>alm#-Tl9;HgL%m zjY~T^FnPCiwP-+;-y{zdxMeZXb}4;C)#Pcns{$`x5}C;q13D1s+S^D+%t)TQ+plNt<>>AIVEg2S)qB z3<|d~5*tD;cR_B!lKML(g$`hqkY3Gf#(+n^D+<4=W=U2yCNozpE@qD$vDB=v4-|e_!|Hnp1!Dz;|F=ASkve>P9z;|_{ z^m)jWoH6<_U%=}#Si)Bud1O?SGOzj{Uu7}ekuvR;ptm^t zPPn`ddP}ubMG?Ezjm9c^?IzLRRsQoH&i&mrZ;+N&aD4|@-z`o64vA6(+9TD*Civ*q zR(moK{_IiH!r@kb(Kb1NxjaK=4zT!%9TJAX3Xf&%VkqLE%)xeO{4D5yw;e+g*k(6CbrFp` zkhFAjG44v;E>Nt9H!L}>Pd@6|L7>sym^f~OkXv@};#Jv|Q3fGGkt6!=@RdQkcL@j4 zcl82nE+$i{6X8!XdBt~2bos%?re)ea3#o_d{uW`@d5dgDaFc!)*7tqrm6hY8Bg- z=^&@F-}~f0jqwqEHz|2UmDmVSk%BPSzh8eV5wPH@7Z5zV&~a`vaYb5OTNOI<(j}70 zmuiq%FB)8}gk%53_r6J2v=aCC_!7c0*EdrPPSh6%UfC1rY4bUtYo-3ldz~r|jKUnj zP)802{XkV7w+&(IK7^^^Jv68<7x3ocNU=-gs-uTG--7LV_%EFed>YJLt0zBV&uJp( z<`Gzvd3DIfa#$H1BFkC+h?nX@!tvfBf8AyLrQ^F=z`46PX=CCEZ>iH4Bj4t%iuURc zN%djbD?zm}yuM%Kb{kIwVvaycJr5X^J% zw9^&7gtol88O;@5D$DAVa)RboAaN`hnupu@Wec+2l5!GVa7qkJu&bj(dizbyi^Bkv zngi+#cJpUJ??F1T?j^Ta2XHOwxsnFiOt$8zu?;qDJa`i6?OPz2!lOsyWzLiY`36ps zzO=5NCbY2F+KRQCudb^6>xPSt|7ON1Nh4uosUH$MEGJx?h;*`Q??6(sF{a$x zr5-k})U0FChwa?&`3Q{NmgVYoYTyxh5Ueq|ugu*_MWyKK|G?b)kg(7?i`)%YB*ILD zM1&77mDZ|VMEf`-Nm?EuVW_Q0?MIvW(9O96q5A z7nu!@Y5bN;m6icR9!nXufI?;2Q)U@w7CVR{r7JcQP!u( zM}>2RcHiI6)CogsZeu=qvG|Q~z6E1Z`siXJeZeWUb`ylp2K#NnSzwHh)~A6PzYweh!;4LhaEX(RQ;0 z{3cOJQIKAR>0@fft~G#|RLZsq6uQDZ90l~%yBqP+7eBkdPEiOrWvBsG-wsJwnY6;2 z8FOl!{CEx*-;LIL+gbHXt|U0jxEY&(%Pk!bgYN#F`TWeao2QnYEg1(CAf)A`;4FNb)9vTfV-ocTSU z|2x=w-)k>?*R|G-RB2R}=^8~mF@|aUPplOm#0mOY8pN*D=0c(#dYAG3TsAUB`qWRP zi2g>lfKyMy0gs9sn?m&rI&-~(?Oy{i2-uPq_%>jgPlXXu2%NzFY`)vt(yE+n->haS zB((jTMyPK~#a_dgogO8y$NP68nz(G+b35j7>g#I8tVSPH7v5MHG}p z9kfjnx-sY*bc&L8ySh|76Rgd4OIL z+x>aSXPOo-M>_X$LhCWGHnbHtU#gtuQFTOqRp$OoJ{Ulgte9dRI4~{BcxLVX(d}(+ zGQ#J5uoRLIkt9R4gHzMiCzD|~Xx*%28msfQp1y%#{#HvneHoq%MU ze?q|ufrTrKc;DWEU1;3k?U8mj}+7hvs0&F>UlA$*vt@IN$L=3W-CH4@%Pqz=S0l`A0%|sYT%q z617rNwc%Q%Q7ZqrV!|wJXJKe4jrxHtgom z50QriP`3e<8J33lHa@mS50`T?>3jA=xrHI*l(|YVJXTT&sTDU|_~w zRi)t3`f>{Rq}uZj^fW^}`EH0Gj$U9IA)Ho%r2QAwh8|7gH6I5451HrcshjokE!zF{ zFXTkwKJwEDB6iSzg1yuuxY}R#o^?yu|MUvGQ;YsR3klfs}O@ zHpy*MQls;U`3$Bs`jaDAsGS( zsj$t9Uomf?T7}fB(VoXD1&58#I zzJX5WrHGjN?>CTMNaLTn&KE~!?a58^umCWs!) zOW10X1{WG)(aJq)7Ktwc$y!7&XP(v!-R+c8>NugfVkY-J2rFw33f=WIZ{ddyx~TBk zbW~SE*DK6d9;8|>YSr-ExpEuVO#_K+R3{Ot`{sO{PjpJak@|3ALzU|s_cJT{b6faV zI+1PjmI$VhaN{Gh7aijglG;Ev7LeEQVNL$w=%G@5Cj;RU4^-FR5B#3xfy*q6XKy7g zlv6Mxm)1YGL!=0PfPgbzmNnEwOv?rlNSOUidBP^z9*y`3c3%AC>^Csj4ujJx6SEZP zce1g1i8HYO6!5Pe5!mk2V_birW{bh(>;bSa=UfsF7xo#~+akcF8=cOZLub1lXgrtH z2da`{p&%j9M$O9@(IjO!VWdBYJdXQqg9-dBuK;o!F9%8#IrWb;RMoJ_WlS9sdg!Q;L7f&vCmf@8=+TM0aO`W8u?msZAY{!I*X z37m~OIMUQ&B&Fk@G|z8BKerxZpPlv8;X3l`@BL*A`jYnU(oJ`a{feZWA5P?Q#*FyHGDmfAN1N(Lv4TGL?QLOtQpnp1>|(ET>)nEp z$MNz?-3LoxvyrH0$W!ir9kRP8J1PLM5?0J^P1?!qFZ#j^0VT#7AY z*&ME-28^7YhhZV9rTBe?2#=hMzH$FN(=PM;^S$`iTu3g&$nM(Jj&F5A{g4V<0~UlJ>3>YC<@;OJlfk9?z5qsCAz&9UO9=(S~d0NMdvoDU5YmB|eq>cfZDF6gpO}YW_faPB{j+Lmy zEBaJ$fI4?97n+In`AZ@dg_vty*h4#rExyWI9}a6yBD~-b$R(Pr=B=PViws*|f|9rW z=YRnPRuwkCHssI65(`OVao%$+r25?z2agp(9II3k34u)LVs zEdjQOcFiA97G-s()z)o1<;Q;#8gyq9B4}9Y&6zzHybDrpy=8o>j#K1~ex{6^3TYio za@fq(o@3Kj!&Z9Qq})3(@GiAJR<5`cQcW!komy5Rn_CmVTXjyJ1Bqz+=avOad9_*? z1WFv{Qoq`qdTrqJgZEK85McYQ7LuNg?Ux~LmNhSrm{E-UmsthVkBzRnb8di!j-R^3 zBpPMrsUE{Ld^zEy=I;vQd??viucvmB_w%ymej7=*kj6ceYa8#Fdmunoi?H?oE|QNn zlUIEs1VfP`cxYR> zy6~vyp>mp63s!0NUUCX%O_u6ozNiN=Ye=Qs5J>nyBnyEyn1H-cfwSme#Li~3QzkUJ ze_*Z2Uc0{ov#0gF>^Obpyg0*ExL?wGmAGggD}VS9%(PRo^SOS;^!yEc(d|SfLk>EtX1T4-e2&8gmepmAIO~a95|5+e4}IRzFodxocS^qJ>nxV! zyciYhf04Za+hy6r`cqK&a_?Rq?sF{yI2n`eV|{&MRlh@P@8OjE+qg&Kl$8IEid&uU z^h9VOe)Py;UUY)xX$gwh%%1|S_uqV#f9hTpi z?Csgixi1%+i5ZJmy=V;whgp)Bx+qKXTvC*G3j0%pI~?hBUP4aJ7+0>`Jl1!AZz9Q0 z^C4?5yI5A^OOL?;0I=dYPXO&Wq?ZFv>DAwRk(BZ!+YuowR)vqAEL#7nmPAq;%5hGa zd+CA3A9D3m_`VxfARe? zNeaVxG^kJoH#h(K+Uc*cXcd#xxRace+0%YEC$3GWGaDGaU}GY0>b_7mV=YyX*JhQ> zgm`asPKLyK4+Zto^wXc`8%n3jp5LKX6zp_lG8}3dmD}>y3!_6Aw>bB&(_jGw3%0cj z#^uj2Eqvp;i=1ueK5n18C_kDz?C+>$=c}DFuVPkyiiR5Rs#Jq#wLpuW4ssQ6VdF;b z3MwORG9$k`KH45H5i^2J7w#2hu!OlLDM^O!a(^*&^h38$KPYD;uckvpvw}W-hu8DF z8~^^dKl}I1F_kEZVIl#@-0qcEvGR|z+7;G{utln}LrrvJQw=1BLqCUtW4b}&p; z3q+B2!u4?C&>ctsbF|IvbLf?VyswYbU75nf3XO(SsX5agAQ@G|uWGBJMWahsttyST zQcP2JyNpd_cB&}`e-gmGbmxTL6NTDQqRho1qB82`?%kZJV-{dTGlf&f3|0J{&H`E@ z8j2#vRVec+Zjz#O>h`!^X27_i$7oY>1_U{((xMjfglv5mdcUoFO2Vt6dK>X2woUAh zRrsArEIVPib1j`liB`q(A=A_FeYqK86K+yDoYinSW9h5yV2f6Y?FpJ&0qiUzLs3PI zyRrWTMTl5yw!g8zN$4P0KiZG5jYHdQ03K`N$y=5^SRnRa!-am=IT-9u_x-LlNnbU z!UVcyh`D^lKXovak+hs(!og^yFt~FvH!X$)VJcF`a|k9zScWT>`q`2WcXa-Rw;=Oy zf=sgzS1XG69f)7LJlc&&bv%F-Cv*Yqh@R#GbBS_9{^Cj&rxw6Gnx6$mcQYq zXScfHgWZ&jV9et3@kJ^Gh1*yFns;tuy0n7z$_!(SmKWY;kl9NdY`zqBh7TT9W#4K1 zD|)Gqo}LjZV;OoEGnM+Fohh^cMOkRfgq#Zx{QoYqvzTr>=q)TGpu^ z(&*JaUstc>qr;y}Vi!8r>KT_$sVWhOi}l{Yr*<4K-0~vJ&V?KwlE1)K{@sZKvk4s1 zq+(U=UdCB1&TqQId7XHpWl?p#p~46qJQ{+Xkg_-*Ui#~E*5mW;-5h&d?!7sYnMys< zAH$%?{ygJA#E?0H-TmeveV?U?`7tz1%k({YGkG6YF(@=GW6*~gpA>DwUD5$}GDK{_ zXJ)?FBJ6NQlj=R9MC}lHUvSI`Ek~SXo}WXk6p`mbXaK-0kgNtsEy7DC)lr) zBcpWMxVRpi!~Dl!dK_8Ai-qK_`TF7+*T^H4zUU4I^~CWTU274#=D|+G$|=6oY3A@r z{Ey^1Pppg@%HBtvojObSjX8o3on2j3^(;&FBNL$jhx2bHZ>({R3@{;8d9-;7&cw)O z^k=i|R$HBBriYoD+?1KvPX%uuYuQV^h?#1~^C%HJvyST%_ zZaM6wP2}&iho}G>r$7#R-C!Qfkn~^IiV#_^5zxdyst+eK1H@dmM)1DqBK7haDdrdI z1V)(sJeSSQHlv9c40Q&AFdp%vGdTWZd!Z9eoAsQ5dN%eF!4Pt*bE5I-8I7MBu4Vb< znVrPY67xIpb1f2;Js1BmJxfxAS9+r~7159}zTM28ilFM(hC%V)JAwqRMimznRw^==)6E0dV0UZoB8s@o6R0$lWC(7-t)+i(qc}uob^z zy(h_clt8HeXi!M7emlb&K$D=bsI6QO@e(~serRC_-8hIbQ|ydL?AJpJ&MzwO!#_6V z`%pCynR6@Hpe>^Y>u7YX51{A+XQ`^L(RUTJs1{#@cR z&BXJ$MBD0DQzTy7^*BSnUoKsfno=`+lR+D{Rz=A=;-{ALm5nZ$JNjKeGn;47w7)Os zSKHu6MGXw1wXxk)I9gxwBQUW*Ru^8v?MJ5)XA>!B9L&R;V79W>%BB>#ED;c5g&Gz=}Ffi_!_I1p@y znWVwqNFo9U$|&5z{?fLxdx5<~Z$tp%*vg`>X7N$S2^YMAF{IEKJ`>l<9EKfI zfgu;msqr4^a;|loA|f?R+bdG6yx|ZbeaL&?e@#@P1cx|<7+;wLog}?*m-;qUq>b9A zsAwa4WD2-}`~VR~n(EO$Ba5g|2DQrDdmQ$e8I@MMAJfgt+AwexNpP`VaC>vhS;lmC z>O=!8wCS*}fAaI-X+?fhbpv~XnX+$2)rN631AL*vs-ba`iRyF&%y3&M_aWMto$j=T zvnDrx+v}qM{s^}l$heqK5_c$-RjZLk#{kb+d9^uuslhV9LyPUAf#Gy$Zd(Bt)PO?E zFl{Po7a70e~&A;ZTBC74%D zoM^K@j$_vNLT+Gvp4dTW3_}v?czGYL^=U^%n2x`B-mzPx@eq)l z!OD~TQ|lKb|2*6hA{17H#ymN=mOuJ$wb#K(LIWv{u5xDq2cfZoly!#s%U8FEC z2sq!zz1$_4B z$^}uzrm{hw9dvAAt}=IvPS4)$XLN!7kY{YTdZ`O%aY#e}LS|RR`Z@{NsG1+ru9hKY zb%Dp4p&JdNYz5}`kt+u_|Bv=x89EpVIvhID?h^v`CZvOUf`<_cL{N$U2?WzHnJ)6B zvsB?$T+(|PPPq8BiV!x)s9q{Uk}fRCe$?MT<1|AK zCyI!hg#biftoWEa1FpIv{4t_@7uRgFSpI?xvQuyo5se>Yb$$>WkhGR+b9;0a0VisU z(xld8!;&3;8ChMrW#&DhMIqR29!5~*!Jw%4 z`!^B|_NKXAdyc!It!0f@7&Qnz#zhNnAEUPQ6|F#{f29QGWg}=CK;+Hn!MFt7*;MwX z1+(S2nb{C_+8ZTWnFN6J+G^b05x+_MUw-@A_$L8Pn;8GR4@g zl7SnsXgxI^kBhXe8k;@jOHs=Eh}<4Jhj_P7E<$|bH*PkmxSV>`%#3^xmO8kUig1m% zX}S>h&p5)k_->xheXNZ?O$0#y|75})BD6`wq)~&=qC@_Iq962Q&Pakv8WIJ)3mDoz zCv(8ey+4IkF3Ui4}oUS6=R|h%v z2GY)ApZ*mFh!_l^&& z*AjQ1G2^sXz{hE>3keCsX&wga0Hhm(LF?qiB-Ije$PYe%E}W(`wto769+Lv;&j6Ij zqOlRM$0|EyVU&C4kWka{MC&@5PB5SU1La5q>6|IV5UWrE>x%m{>VDdu4e&}l-D z;@=svOM^mY3gHN5GN|v4IK05LTp1EmS%x51MKEuU*zjMK5`erU%*U*&me7_IW_|y+ zu_AH|jxRo^Rm4Gka9H)Ya5lYkaLi=9EX@Y}6s60;SKGI{{BErs(yR16U6{Cw?PS1w z&7f_IBnUp*h-90YGbE!foR?-9M85o5|M9EfcZ#PmQ6}G^1F*YSRln+U&+{F0+3A-* zneOukJ`K$2xsg>>6Z|aCSW4eGMq&cXUV!<(O4Dt@veUUg{{DLR`QDwI>EEuL(@J<@ zBb)tan&W=il2YvQNYJ8??GjX%wu(ya20)xXJ=&e1K^Q`-M4cMNNAjXA^??f;B0BZK z5UQy+)gcX&hJsSw0uhimgH{y?nQl2O>E0OlUA-CjwMB?TAo$_1BU@NvCJz?oUp{LA zdAT|S`aMwL5Qklrv4W5SDp=Zy%`9x-&23s#sk%8D7mW4fiX*#{TCy)nPMnGf769O( z5P;z`39Q@Q<53^bj)*mV#2U-CYgLZcJ2#3BoOhdkoT_}Js`c&F^Z00d|Nhs%w-2*% zFUEcp?1Pxi{qvC8?@WW*JHsXkMzuG#5EmVfDSx7nda!ylwm1UD3K*-3hx_U57sU(^ zdltE&6QCDZ3_i75Xg%ZFc`#1lLU|{$#y6%WF zy06ysYQfdK=$_clBUgp~6^1(v$V$nuFQp-5fZ%hB*a|0+$~Rv3qyt;wHT&mZR0ObBo9i^GGHeAENAjaXzw(xH-GDcqzanot+72Oy5yC6+CXXSs6Xw0 z|4f+Dh*HD7hx}9mr0*wo>)15Xhj6ltu6`65;nihhlSQXmFjR%c`q^`BqZ}_^XyVyu znOMG(=m5Kt27;O-;!`W}4)=1T_jj)UkD9|Eq8Sv!y;I>d|{Y!O!Yl6zxl8mh7nqlXMm zlnQsL&}&CS1t>p2lEqAa;cM<2e|&fMl!{HUO2Z^>Ro!LMYplq7XPYEo?()@> zGG7W$SaU4d{&1q>m)RM~yzqutLo>=;Y0itimD*I36Qlko8wfotAirM@z!C*O8|ME! zZ&TU51xd;7&##=9jSxy4QHJg;FGW39Y*So0H*tUodi+SK&{YE zN`|8I&Ma;4E?EE@okNiz9$G*5HAQDggJQt(H!%D11nJ2Lo%CF3y_A=}@0LN~^!E{}h)WuZJ=oEDCku7#uK5<; zEjW4TrG6bwhjXY5!9%50eJ61VAcecc;=G)I%xWgam^~>X7GRs2O~O>5+aH#{6hSMj zZsrttRW-X1H3BWNyc!Hhbtkx{e=+jEpwBe!ysPTFXSoKK4s<=WiOKF(?x$Tk5?~H( zxN?DIViRwMwQT(Z$s3@c4vN1hkbIS;Jt-Z`@cxQZv);SW$_C$iug-TeF$Ct^`P1kw zX0l|6Z|)AWsTJXUpsitia7J0KXq+JtMPg$4&nbZ5p^ZYcuz#|3{lB9RfD4sj6}BWkNcQbYU4_PQ%Ug^9pT!&Xa^HS1b2>>3pdh_ z>#2Ta=64*E5HDzFX88Wx8&e4x{zcO460;cb7w8S0;?!A9JB01_Lw{4jeZu z*%{L~UPyZP8w&J1SkJ9IQ`)r~;_9PD8kj=C{ofcyLpi;>6WEToKjIZwBZ%ae zsNhuLIllld>zwE2N6j(VdQwNU>$eW@NRr>61=oT&$abGG zjC4OPk9+iHX9(2AV8~4e9JE}2K}QHZEs2PU5neq*g0AeNoQk*AWp_#X#t_zTyJ2c& zwSyS{W$oywd-d= z%2w5WV)Nt-3|5w?18V>JR@xKaZ%wmy{Zl zTOkWtu~C$xnyMaTD`)c!^TNEcm8`aVLDSNjTW!r%?I6lN@WOgbbb2)ntJLd~_f`HK zUmU1FqfzFM#K$2-cvX}I+f)eO{_L05kNa=BJk#%@3y(B zYjqM1@g;{M(`Db@S(kZJl6XJ>L)j)w7vK}*CBpBW7f+cC=kucXEXmTN%_r3&>^?sU z^+(4`4xA)0Jne>lGkjmUzZCR)kQL7ew_ES*(tMVV3~jahdhRp5#wlEA$Es5+NI)H_ z7n5MQT%IXw+aX=VIlZ#` z)6YZHb-CVNw&`2x;@Iq=(od#{L1X!MT?M-^YTL)r*pK+k&MWC<$>s&xe(y}$Npwc+ z2jkB_B`2Z!9f^~l%tL>tz}Eu6FC_md0Ilp2mq!5zk(IS@WqPl9;MQO<_)U=pI%Nz^ z$A%DwtxeQ_wm2WmuLThY$VLaunB7R{&B36uzK&aEW98cAPWL5J8YozN8~Rv-fmRJb zt(WZ60*x!IdruAhc>29Ugo#dp!Ss^MHLz~iObEY*C#=iO<#-s%RkNPNNVj3S#S9<4 zaVwZJOCo?nAFV|(7){F0Ec!%MBE-qzHn5~8PG~)FH&^fSEY0Js_q(yc&Jay)H>^eE z1Wj{r0q|2;$QdqnG3TIE@> zqi|$y&hp>0Rp(1p*74EIY+C6`4k@fmzaavprlc?(ex&h@0i=W&1$!|-Zv|rM`*vay z5oLXhb6Da5PhZh9U^bfNG>KtM|Dgk6;&44dh70d~kp^#Q1p0xOF=~v7e5{E)7Q!Rl zfgtRo&ZLNVJUAii8eN+ow1(uBEX{=GFWx5%zPtj#*AhWN%nfdWDvITVYe_U>FdVbF zOc|c^>9e13tu~Tt5#P;e!!k?!`_Yk3kD_;@%j;}@)Bvuw)>ARY9uXf8H?w{AWEWJy z5Ntsc{9jgFV}^_@%)oI!K)nN^nBHyHddOF2De!49s}r{2k;5ZI{PXk4)t}j|B^AJc z*v%tzo$R*UW1w8IIT*|~l)P`q$BX%MR{0aEk{3#H_i^>R>2vbpy2c_P?w2Fn9#L%U zn*-SqMr83>98SX~Nq^d@fS23ba6-Z;aU#ZKirmYXCxeI?nx-3{rPZE zA_bchbnaVIT6R~U<$*%APthw-5a@|)pb!aaWnrO#T^bq(9jWk#Jwemtc8+S zbFO^PUn)hZLq4Ku5BpohZ-i@~g8`qKO!TV5%`S zYoG07^0@A29?D4%M)3C8u1!{v2n5^<79qNPT(*Gk8yihBW%0tI-FnyO?pG&R#+@Lr z&h*ab2dVz+!Y>fL4edVu-7d%RWk69CH?Lf4ylI9NMbHOFf{X`H1~)H`TS1TU!Ua&; zasF;WvVegr%F~f>P%Mlls+{VSJ#0QYtY(2QQjYP}`rP?4n9Hh*vg}Vy#I5QxtMmTn zrn2@}V`03Noe=7$n;$ot3p(^u>V~EtP{%E4cTM?{07Fb1#)8-zvr3ePsqK4EI>0Kr&W=*LHOXliDB!7Mm-0A2Mfb;6Cz`eEFg;8)rljW3GZ86=6 zPBUdn)qb9e;?~TJD}HjD`E)pjuZK#AkRMkryD?PObFaxP#27&cU}k3K z4iSg2!~58{#7BNB*Ys_%F`Ss2!`s}eVfYBhN7?W#524w!H|Tbw`w%9sBRZ)WniSe= z*<2BTb-Zi6qP=)3|lSUNM`=c_sqKd z%DKH*2$)){sabm3sCm~QTFUA&2aBzGp32#1N(x0+2eE9XZaswIVN7!N4XlIL_7yI+ zgyo-3F#uko?<;uqc!Tq%eq{&oA~xZVa5&_@!iKMj_Uc^At@xPWjqNTTWQUwNKHlML zOv`VOLmcs-DCfe+_dS5<^Wvvx{$xm+i7@JzVLqpl7s29%u}Bc|R$b}xvFn>Dtm~BTz{UY5o$<8TYd4kSW zl#+{?P??c4_b>9^bS_ws-PQQ{6_{x)zRLhGsea`yMHm}dCeC9IIXCP=V>))ns$Z@x z{!0Mhslt1~M>FQW3)pSIr6`=$B+W;$-)ZNE!2~SHNguSP%VA(hUgX$d@7=+;_i^&X z($T27lpse=mKv&4o2eKthvQ9cyKL&saxc5)`GWx2e7%{TkZESE;yPZKh}=1_;vBc( zG_ol-G{ZD*4pvwew~3TcTJ&Ef`2{8H#U`y+LsNqk1_zzq*coN_tL|NBl%bN4egO-^ ziL-(@{vBQ0Enb$>b~wy>(cl1STVp7no3YJ^Ph{z=;kQAj-`}xrAAjsKK&lJ#for?% zh)Idr7QFE?f`+C8A<;xasBwRBD6hS)VvYU&g z2qbTz=xf2D!7$f!c`(9tE8F{Dj3Z1kLqWLwg6&>awyC_e?|!K=1jn^NE;K}DcRx_S zSc6?pHpUl*^Ow(kKdEUyQ{EGJ-cgsYC7u)3x_=Xm zgYyjr*Qto6G*do~cxXM+=A%2kjjGf@PAyYV2x`NKKB}KMs%n-@piTe#_hA0#aSukI z4tJeEjnqA!T7H;YOrYfG2^$y;i?l{JaAu-Csd@?Zez~t`e(4Lw<`c~OJf`1^$VM;v zT!zXE=H(!bP$t)APZKD;){vo?s;BK6HHS-NT&jJ+Z-&R!>&)j(?m8VS(BT zC}2pz%%gXE+e*1&OPggrS0&wAj~x*#MRBAQ=lME>!Cd#p0DKatKV%8Jw*dQ#K!(tB zq+($$RZb^a-o#uxN7m=e z#d*A7J?5(lSabJebe_lR?3vpxM`CNEy#xa)NKu)15;I&?WeZ6xL-rjkx6hHiW$(YI zl9i$P)z{&yOjFL8xw(F9tS%2A_a*ZwZ3{QZImQkZdcj8+7W@n#e78Q03I!8(Ef!R1 z#>MA)=sfX$y!M>4TC(`wGTTI_uGZ}Jcz!NfdeHcS*?aM}en@NH>?z!?gI`fFL05kI zsr@-)|JwU3@}xg}AYH?Pf&kS}*Q2LJ-=#b5E8QbUX_hR{4=2l~B_oLQB1_0f%Uwdw z;$F$;Qb11^4`VYQ+7f#S-$mogS~wIdy|rAah2o1=0e zlAqkyxPRll$>8}9Q+4(6Olj`90)GzVe+!P+X(a=w>}AS%bq(Q zj%rQS*MNJ>_adIJjv^(Ti(ODwjrkB~p5bT(*NTU<7O6O4j@H-M?1m#7t$n-9@HYhy zRl7#w)5wLl(V-GwY#Hl2vXT&wb?H;b3@eM?O<^~H~43qv)-3a1BdI_kfgJxxwt z)r68WO%R6)rj3kQ92lFA2<6_DoD24DSGp9`x$xw^$HrmLi_G9d4?7Y|ggFvc@QS+> zbY#~~ufMm> zD|#CyinLH?d;yGZ%Y{@maQ2}VKDO|9?CO;v;;sX=YO!IkY(~8I=IRxqW8`sFIz7m% zU1o3&E_-`AJlDtG^GVN|Yi$=jTYdjh0?2a=70?NVlP(v>QQfG;9_au5(#(Oy-7y(Zj zVFV4|;>LgD{q3F#_R_wfu^n|OtpGsRh%u!0W-@K=rQ8-V?ViD5{N?2B5A5D8zTiF- zi=H+-DuNXYkW>qj?+)L^#6?H$UOrtldr#ebvA~iYIpOO>;C5?rq#- zP(`RT2V_b?2*ocVK;@G#bBkCFdAqnAM5j7|SM150E_X_N=5Q1n`Fu*F!88_fbQ{-$ zkyWMVwLcH8cY_dlIGdd?g=>Vf8bKXRkhXH%2W4CNopf#v{JhX-&GW?kzBc#KJp9~G zNM4<^@JQS1SZGz~Rq0xXIPs^a;2Ih^uADA+LK`#Nb+p^xiFf}-`C}KOYo?p_T->MZ zF38FX)2h&k4?^FdJa-gU*9UW{W=$5QTxg>*mO7Bf1eO5h8kY+}8&Ov>U)I?4Vnjln zt&{EXGp&UN3#ENv4)avb?El4JtR5H53K=J6j;^3h}r_%0;cRUj+E zKu!+(#NWssO&qx}hlQ~&`?2FQ@{X}w7_hlnXm2EWmfiT#{rxmJsACqyjVP)uS628A zJN?q-hZprfQuM8f+p3#i443W)P0q$*B!N~{u_E<@w{;_}>p;NA7KhkhLUv)yvljtWv-9Z2j!}9IQOB{gShWhR}>N38ykuuTri+obFS9$=Xz~ zCwXON`OKs=1(6*|n}9@gpNEo|M^57M$zcH+=>hv;t06eP87@_^;_oi$@LxHD4C$?_ z;OCn*e|XW7>U^5~X=P)lF`pqU6eC3ypCb7;2Wld7W3R(mlAMRTH4FB8K&ZvEuS6u8 zAh+%j_MX9Tr>y2oww|OEIv#do)*}-gt^x^kmtZVC6oTbV4x3WJP17|ELL)X*zDC;v z2!nXp?B%@|990M`doT#CH-u@POymSpYF0P;6KjJm(e7R;xcE2MJ^x^nojD;YsS*JT z@=7VgIp^*4<s@H2_tW-M$o{GV3mT(EL@}SC3Uslrsezhc z+_yOE(Op5c{y7gN?M_gpUP_zTF^pA2{&-nCpd#{fAJ;Jyu|3SOz^WeOxTxl@cF*t zvAyv6gi$SL=+~Nh^J=MKZrz^X!R!&~9PyfVJsFc|8!|L)-=?@HOnK20^FwIizWz>N ze1JD{)E7sJxGc$5bJ$_(YS>NMP?G3&19|SaIfI!CJU5n>J^ln&^(h#{QGinbxWCK4 zjemp)HpZZBsn~dVN+2zAOFYRUm?NfDFnloZXP+p`4?6U;3W-m*gz()t4eZ(oH682K z(29bh{-$DGu4^W#ua{FRK{zmbzT>YWz}v-HLD;2Hu2jOZhK9|%jW_rH-apA-$|}Nt zL$^*RBBa(}_jr~*y{jBEP00CAIVLS!%p=Pc`3RAu-9X5Amhlu}*hZy_ze|Wo+0K`v zAo6uGmsclzvs&$}{+;rk{?&lZb?f+q8&Vt8L!MapQaN(yG3E%qLFv}YAT2F(XCZ=X zv7~XayD?+n8tWi5cX-z4oeSAnr~mAHkmtJyrdiq5dr;m+C+QU6Ze* z7(?M5?}aZ06%{i^B#!M1QZieKJtsOT=?S@s*oHf=9y1JWca z`PjdPj{w95R5{Ga->Q=7H2!f@+eSL6m^Rx#DVr2?IXpD(d2*aN06_)x*)4NaGVZwj zfuIsF!18c-L*IK^%5utcXK}6fHSv=Lc=fSv&aK!pz=iqclj;?8)%E6eJL!~6zBAH5 z^VW;ggPL0X@t))Pw>0lw&3W2-?Y1tZ7cgdU8=M{(<>~6Xs4;N8Q@-jmV3(RqQ;E2{ zdPg@eo-x;`<2Qjti2Y3YDq(z+iX03%Lp8*!$Qa=DPMaFU_sseD96Golgx7ITdi7jy zzI>@g>RM($6`oAUTEQ?k%fbpl_fd$*Ll!!Pxr~AUglm8^B`)(T8%h==@5Z*Oa9#M% zM2uN!JoI;OQK%zds)!-)wilF|SGY$H25GRMKW;r(x@2wezF5<~KAQ&p*Yk6>?p1&_ zbRB@^zukJlVd5q`mBYGa9r0yE9m;z|NT&+npfz|$R8A;X%s~uWEf4${;d$6;yk%

ch{UKUIK7 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 literal 0 HcmV?d00001 diff --git a/css/main.css b/css/main.css index 404d97b..eae07b4 100644 --- a/css/main.css +++ b/css/main.css @@ -1,6 +1,4 @@ -*, -::before, -::after { +* { padding: 0; margin: 0; box-sizing: border-box; @@ -8,79 +6,385 @@ } :root { + font-size: clamp(1rem, 1.2vmax, 1.2rem); +} + +html, +body { height: 100%; - font-size: clamp(1rem, 1.2vmax, 3rem); - --ease-in-overshhot: cubic-bezier(0.6, -0.28, 0.735, 0.045); - --ease-out-overshhot: cubic-bezier(0.175, 0.885, 0.32, 1.275); } body { - --accent-color: #6300d4; - --text-color: 17, 17, 17; - --text-color-light: 100, 100, 100; - --foreground-color: 255, 255, 255; - --background-color: #efefef; - --error-color: red; + --accent-color: #256eff; + --text-color: 20, 20, 20; + --background-color: 240, 240, 240; + --foreground-color: 250, 250, 250; + --danger-color: rgb(255, 75, 75); + --green: #1cad59; + scrollbar-width: thin; + scrollbar-gutter: stable; color: rgba(var(--text-color), 1); - height: calc(100%); - background: rgba(var(--text-color), 0.04); + background-color: rgba(var(--background-color), 1); + transition: background-color 0.3s; + --dark-red: #d40e1e; + --red: #f50000; + --kinda-pink: #e40273; + --purple: #462191; + --shady-blue: #324de6; + --nice-blue: #256eff; + --maybe-cyan: #00b0ff; + --teal: #00bcd4; + --mint-green: #16c79a; + --yellowish-green: #66bb6a; + --greenish-yellow: #8bc34a; + --dark-teal: #11698e; + --tangerine: #ff6f00; + --orange: #ff9100; + --redish-orange: #ff3d00; } body[data-theme=dark] { - --accent-color:#c64aff; - --text-color: 240, 240, 240; - --text-color-light: 170, 170, 170; - --foreground-color: 20, 20, 20; - --error-color: rgb(255, 106, 106); - background: rgba(var(--foreground-color), 1); + --accent-color: #86afff; + --text-color: 220, 220, 220; + --background-color: 10, 10, 10; + --foreground-color: 24, 24, 24; + --danger-color: rgb(255, 106, 106); + --green: #00e676; + --dark-red: #ff5e7e; + --red: #ff6098; + --kinda-pink: #c44ae6; + --purple: #9565f7; + --shady-blue: #7084f5; + --nice-blue: #86afff; + --maybe-cyan: #66cfff; + --teal: #6aeeff; + --mint-green: #4dffd2; + --yellowish-green: #9effa2; + --greenish-yellow: #c7fc8b; + --dark-teal: #51cbff; + --tangerine: #ffac6d; + --orange: #ffbe68; + --redish-orange: #ff8560; +} +body[data-theme=dark] sm-popup::part(popup) { + background-color: rgba(var(--foreground-color), 1); +} + +p, +strong { + font-size: 0.9rem; + max-width: 65ch; + line-height: 1.7; + color: rgba(var(--text-color), 0.9); +} +p:not(:last-of-type), +strong:not(:last-of-type) { + margin-bottom: 1.5rem; +} + +a { + text-decoration: none; + color: var(--accent-color); +} +a:focus-visible { + box-shadow: 0 0 0 0.1rem rgba(var(--text-color), 1) inset; } button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; position: relative; - overflow: hidden; display: inline-flex; border: none; - background: none; - cursor: pointer; - outline: none; + background-color: transparent; + overflow: hidden; + color: inherit; -webkit-tap-highlight-color: transparent; + align-items: center; + font-size: 0.9rem; + font-weight: 500; + white-space: nowrap; + padding: 0.8rem; + border-radius: 0.3rem; + justify-content: center; +} +button:focus-visible { + outline: var(--accent-color) solid medium; +} +button:not(:disabled) { + cursor: pointer; } -button:focus-visible { +.button { + background-color: rgba(var(--text-color), 0.06); +} + +.button--primary, +.button--danger { + color: rgba(var(--background-color), 1); +} +.button--primary .icon, +.button--danger .icon { + fill: rgba(var(--background-color), 1); +} + +.button--primary { + background-color: var(--accent-color); +} + +.button--danger { + background-color: var(--danger-color); +} + +.cta { + text-transform: uppercase; + font-size: 0.8rem; + font-weight: 700; + letter-spacing: 0.05em; +} + +.icon-only { + padding: 0.5rem; + border-radius: 0.3rem; +} + +button:disabled { + opacity: 0.5; +} + +a:-webkit-any-link:focus-visible { outline: rgba(var(--text-color), 1) 0.1rem solid; } +a:-moz-any-link:focus-visible { + outline: rgba(var(--text-color), 1) 0.1rem solid; +} + +a:any-link:focus-visible { + outline: rgba(var(--text-color), 1) 0.1rem solid; +} + +details { + padding: 1rem 0; +} + +details summary { + display: flex; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + align-items: center; + justify-content: space-between; + color: var(--accent-color); +} + +details[open] summary { + margin-bottom: 1rem; +} +details[open] > summary .down-arrow { + transform: rotate(180deg); +} + sm-input, sm-textarea { + font-size: 0.9rem; --border-radius: 0.3rem; - --background: rgba(var(--text-color), 0.1); + --background-color: rgba(var(--foreground-color), 1); +} +sm-input button .icon, +sm-textarea button .icon { + fill: var(--accent-color); } -sm-button[variant=primary] { - --padding: 0.8rem 1.5rem; - margin-top: 1rem; +sm-button { + --padding: 0.6rem 0.8rem; +} +sm-button[variant=primary] .icon { + fill: rgba(var(--background-color), 1); +} +sm-button[disabled] .icon { + fill: rgba(var(--text-color), 0.6); +} +sm-button.danger { + --background: var(--danger-color); + color: rgba(var(--background-color), 1); +} + +sm-spinner { + --size: 1rem; + --stroke-width: 0.1rem; +} + +sm-form { + --gap: 1rem; +} + +strip-select { + --gap: 0; + background-color: rgba(var(--text-color), 0.06); + border-radius: 0.3rem; + padding: 0.3rem; +} + +strip-option { + font-size: 0.8rem; + --border-radius: 0.2rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } ul { list-style: none; } +.overflow-ellipsis { + width: 100%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.breakable { + overflow-wrap: break-word; + word-wrap: break-word; + word-break: break-word; + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + +.full-bleed { + grid-column: 1/-1; +} + +.h1 { + font-size: 1.5rem; +} + +.h2 { + font-size: 1.2rem; +} + +h3 { + font-size: 1.2rem; + line-height: 1.3; +} + +.h4 { + font-size: 0.9rem; +} + +.h5 { + font-size: 0.75rem; +} + +.uppercase { + text-transform: uppercase; +} + +.capitalize { + text-transform: capitalize; +} + +.sticky { + position: -webkit-sticky; + position: sticky; +} + +.top-0 { + top: 0; +} + .flex { display: flex; } +.flex-wrap { + flex-wrap: wrap; +} + .grid { display: grid; } +.flow-column { + grid-auto-flow: column; +} + +.gap-0-5 { + gap: 0.5rem; +} + +.gap-1 { + gap: 1rem; +} + +.gap-1-5 { + gap: 1.5rem; +} + +.gap-2 { + gap: 2rem; +} + +.gap-3 { + gap: 3rem; +} + +.text-align-right { + text-align: right; +} + +.align-start { + align-content: flex-start; +} + .align-center { align-items: center; } +.align-end { + align-items: flex-end; +} + +.text-center { + text-align: center; +} + +.justify-start { + justify-content: start; +} + +.justify-center { + justify-content: center; +} + .justify-right { margin-left: auto; } +.align-self-center { + align-self: center; +} + +.justify-self-center { + justify-self: center; +} + +.justify-self-start { + justify-self: start; +} + +.justify-self-end { + justify-self: end; +} + .direction-column { flex-direction: column; } @@ -89,38 +393,29 @@ ul { justify-content: space-between; } -.full-width { +.w-100 { width: 100%; } -.hide { - opacity: 0; - pointer-events: none; -} - -.hide-completely { - display: none !important; -} - -.no-transformations { - transform: none !important; -} - -.overflow-ellipsis { - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; +.h-100 { + height: 100%; } .ripple { + height: 8rem; + width: 8rem; position: absolute; border-radius: 50%; transform: scale(0); - background: rgba(var(--text-color), 0.16); + background: radial-gradient(circle, rgba(var(--text-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%); pointer-events: none; } +.button--primary .ripple, +.button--danger .ripple { + background: radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%); +} + .interact { position: relative; overflow: hidden; @@ -128,18 +423,59 @@ ul { -webkit-tap-highlight-color: transparent; } +.empty-state { + display: grid; + width: 100%; + padding: 1.5rem 0; +} + .observe-empty-state:empty { display: none; } -.observe-empty-state:not(:empty) ~ .empty-state { +.observe-empty-state:not(:empty) + .empty-state { display: none; } +.bullet-point { + display: flex; + align-items: center; + justify-content: center; + margin: 0 0.8ch; +} +.bullet-point::after { + content: ""; + height: 0.4ch; + width: 0.4ch; + border-radius: 0.5em; + background-color: var(--accent-color); +} + .icon { - width: 1.5rem; - height: 1.5rem; - fill: rgba(var(--text-color), 0.7); + width: 1.2rem; + height: 1.2rem; + fill: rgba(var(--text-color), 0.8); + flex-shrink: 0; +} + +.margin-right-0-5 { + margin-right: 0.5rem; +} + +.margin-left-0-5 { + margin-left: 0.5rem; +} + +.icon-button { + padding: 0.6rem; + border-radius: 0.8rem; + background-color: rgba(var(--text-color), 0.1); + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; +} +.icon-button .icon { + fill: var(--accent-color); } #confirmation_popup, @@ -166,573 +502,573 @@ ul { margin-left: auto; } +#prompt_message { + margin-bottom: 1.5rem; +} + .popup__header { - padding: 0.5rem 1.5rem 0 1rem; display: grid; - grid-template-columns: auto 1fr; gap: 0.5rem; - align-items: center; width: 100%; + padding: 0 1.5rem; + align-items: center; + grid-auto-flow: column; } .popup__header__close { padding: 0.5rem; + margin-left: -0.5rem; cursor: pointer; } -.icon-only { - height: 2.6rem; - width: 2.6rem; - padding: 0.6rem; -} - -.close-icon { - padding: 0.3rem; -} - -.initial { - display: flex; - text-align: center; - user-select: none; - align-items: center; - justify-content: center; - font-weight: 500; - color: rgba(var(--foreground-color), 1); - background-color: rgba(var(--text-color), 0.1); -} - -#contact_popup { - --body-padding: 0; -} - -#contact_popup__initial { - align-self: center; - width: 5rem; - height: 5rem; - padding: 1rem; - margin: 1rem 0; - font-size: 2rem; - border-radius: 50%; -} - -#contact_popup__name { - align-self: center; - font-weight: 700; - font-size: 1.2rem; -} - -.contact__copy-row { - padding: 0 1.5rem; - margin: 1rem 0; -} - -.copy-label { - font-weight: 500; - color: rgba(var(--text-color), 0.8); -} - -.flo-id-grid { - gap: 0.5rem; - grid-template-columns: 1fr auto; -} - -.copy-button { - padding: 0.4rem; -} - -#contact_popup__options { - padding: 1rem 0; -} - -.contact__option { - font-size: 1rem; - padding: 0.8rem 1.5rem; - font-weight: 500; - color: rgba(var(--text-color), 0.8); -} - -.button__icon { - fill: rgba(var(--text-color), 0.7); -} - -.button__title { - margin-left: 1rem; -} - -#main_card { - height: 100%; +textarea { + color: inherit; width: 100%; - grid-row: 1/3; + font-size: 1em; + display: flex; + background-color: transparent; + padding: 1em; + border-radius: 0.3rem; + border: none; + font-family: inherit; + transition: box-shadow 0.2s; + outline: none; + caret-color: var(--accent-color, teal); + resize: none; + line-height: 1.6; +} + +.textarea { + display: grid; + width: 100%; + align-self: flex-start; + position: relative; + border-radius: 0.3rem; + padding: 1rem 0.8rem; + background-color: rgba(var(--text-color), 0.06); + transition: box-shadow 0.2s; +} +.textarea > * { + padding: 0; + grid-area: 1/1/2/2; +} +.textarea .label { + align-self: flex-start; + pointer-events: none; + opacity: 0.6; + transition: transform 0.2s, color 0.2s; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transform-origin: left; + will-change: transform; +} +.textarea.label-active .label { + opacity: 1; + transform: translateY(-60%) scale(0.8); + color: var(--accent-color); +} +.textarea.label-active textarea { + transform: translateY(0.5rem); +} +.textarea:focus-within { + box-shadow: 0 0 0 0.1rem var(--accent-color) inset; +} +.textarea:focus-within > * { + box-shadow: none; +} + +#show_character_count { + font-size: 0.8rem; + margin-left: auto; +} + +#flo_data_status:not(:empty) { + color: red; + padding: 0.5rem 0; +} + +#saved_ids_popup { + --height: 80vh; } #main_header { - grid-area: header; - height: max-content; - gap: 0.2rem 1rem; + padding: 1rem 1.5rem; +} + +#main_card { + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + background-color: rgba(var(--foreground-color), 1); + transition: background-color 0.3s; +} + +#pages_container { + flex: 1; + overflow-y: auto; +} + +#main_navbar { + display: flex; + background: rgba(var(--text-color), 0.03); +} +#main_navbar.hide-away { + position: absolute; +} +#main_navbar ul { + display: flex; + height: 100%; + width: 100%; +} +#main_navbar ul li { + width: 100%; +} + +.nav-item { + position: relative; + display: flex; + flex: 1; + width: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 0.5rem 0.3rem; + color: var(--text-color); + font-size: 0.7rem; + border-radius: 0.3rem; +} +.nav-item .icon { + transition: transform 0.2s; +} +.nav-item__title { + margin-top: 0.3rem; + transition: opacity 0.2s, transform 0.2s; +} +.nav-item--active { + color: var(--accent-color); +} +.nav-item--active .icon { + fill: var(--accent-color); + transform: translateY(50%); +} +.nav-item--active .nav-item__title { + transform: translateY(100%); + opacity: 0; +} +.nav-item__indicator { + position: absolute; + bottom: 0; + width: 2rem; + height: 0.3rem; + background: var(--accent-color); + border-radius: 1rem 1rem 0 0; + z-index: 1; +} + +#fix_invalid_button { + margin-bottom: 1rem !important; +} + +#get_private_key_field label { + display: flex; +} +#get_private_key_field label input:checked ~ .visible { + display: none; +} +#get_private_key_field label input:not(:checked) ~ .invisible { + display: none; +} + +.multi-state-button { + display: grid; + text-align: center; + align-items: center; +} +.multi-state-button > * { + grid-area: 1/1/2/2; +} +.multi-state-button button { + z-index: 1; +} + +.clip { + -webkit-clip-path: circle(0); + clip-path: circle(0); +} + +#flo_id_warning { + padding-bottom: 1.5rem; + border-bottom: thin solid rgba(var(--text-color), 0.3); +} +#flo_id_warning .icon { + height: 4rem; + width: 4rem; padding: 1rem; + background-color: #ffc107; + border-radius: 3rem; + fill: rgba(0, 0, 0, 0.8); + margin-bottom: 1.5rem; +} + +.generated-id-card { + display: grid; + gap: 1rem; +} +.generated-id-card h5 { + margin-bottom: 0.3rem; +} + +#home { + padding: 0; +} +#home > :first-child { + overflow-y: auto; + align-content: flex-start; + padding: 0.5rem 1.5rem 4rem 1.5rem; +} + +.primary-action { + display: flex; + padding: 0.8rem 1rem; + gap: 0.5rem; + white-space: normal; + font-size: 0.8rem; + border-radius: 0.5rem; + background-color: transparent; + border: thin solid rgba(var(--text-color), 0.3); +} +.primary-action .icon { + fill: var(--accent-color); +} +.primary-action:not(:last-of-type) { + margin-right: 0.5rem; +} + +#saved_ids_list { + position: relative; + align-content: flex-start; + padding-bottom: 1.5rem; + margin-top: 1rem; + gap: 1rem; + grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); +} + +.saved-id { grid-template-columns: auto 1fr; - grid-template-areas: "logo company" "logo app"; + gap: 0 0.8rem; + border-radius: 0.3rem; + padding: 0.5rem; + background-color: rgba(var(--text-color), 0.03); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } - -#main_header__logo { - width: 1.8rem; - height: 1.8rem; - grid-area: logo; +.saved-id.highlight { + box-shadow: 0 0 0.1rem 0.1rem var(--accent-color) inset; } - -#page_container { - grid-area: page; - overflow-y: hidden; +.saved-id .edit-saved { + grid-area: 1/1/3/2; + padding: 0.3rem; + position: relative; +} +.saved-id .edit-saved .icon { + position: absolute; + height: 1.2rem; + width: 1.2rem; + right: 0; + bottom: 0; + border-radius: 0.5rem; + padding: 0.2rem; + background-color: rgba(var(--background-color), 1); +} +.saved-id__initial { + display: flex; + align-items: center; + justify-content: center; + height: 2.4rem; + width: 2.4rem; + font-size: 1.2rem; + text-transform: uppercase; + color: rgba(var(--background-color), 1); + font-weight: 700; + line-height: 1; + background-color: var(--accent-color); + justify-self: flex-start; + border-radius: 2rem; +} +.saved-id__label { + align-self: flex-end; +} +.saved-id__flo-id { + font-size: 0.8rem; } .page { position: relative; display: flex; flex-direction: column; - height: 100%; - width: 100%; overflow-y: auto; align-content: flex-start; + padding: 0 1.5rem; + padding-bottom: 3rem; } -.header__company-name { - grid-area: company; - font-weight: 500; - color: rgba(var(--text-color), 0.7); - align-self: flex-end; -} - -.header__app-name { - align-self: flex-start; - line-height: 1; - grid-area: app; - font-weight: 700; - color: rgba(var(--text-color), 0.9); -} - -#main_navbar { - grid-area: nav; -} - -.navbar__item { +#transactions { position: relative; - display: flex; - align-items: center; - padding: 0.8rem; - border-radius: 0.5rem; + height: 100%; + padding: 0; } -.navbar__item--active .navbar__item__icon { +#transactions header { + padding: 1rem; +} +#transactions header .grid { + grid-template-columns: auto 1fr auto; +} + +#flo_id_name { + overflow: hidden; + text-overflow: ellipsis; +} + +#token_list { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} + +.token-item { + font-size: 0.9rem; + padding: 0.5rem 1rem; + background-color: rgba(var(--text-color), 0.06); + border-radius: 0.3rem; +} + +#transactions_list { + flex-direction: column; + padding-bottom: 4rem; +} + +.transaction { + gap: 1rem; + padding: 1rem; + background-color: rgba(var(--text-color), 0.03); + border-radius: 0.3rem; +} +.transaction:not(:last-of-type) { + margin-bottom: 1rem; +} +.transaction .icon { fill: var(--accent-color); } -.navbar__item--active .navbar__item__title { - color: var(--accent-color); -} - -.navbar__item__icon { - margin-right: 1rem; - fill: rgba(var(--text-color), 0.7); -} - -.navbar__item__title { +.transaction__time, .transaction__link, .transaction__receiver { font-size: 0.8rem; - font-weight: 500; - color: rgba(var(--text-color), 0.7); +} +.transaction__receiver { + margin-left: 0.5rem; + color: rgba(var(--text-color), 0.8); +} +.transaction p { + font-size: 0.9rem; + max-width: unset; +} +.transaction__time { + justify-self: flex-end; + color: rgba(var(--text-color), 0.8); } .fab { position: absolute; - display: inline-flex; - border-radius: 5rem; - aspect-ratio: 1/1; - padding: 0.7rem; - background: #FF1F1F; - box-shadow: 0 0.5rem 0.5rem rgba(0, 0, 0, 0.16); -} - -.fab__icon { - height: 1.8rem; - width: 1.8rem; - fill: white; -} - -#flo_options { - padding: 1rem; -} - -.flo-options__item { - padding: 0.8rem; - max-width: 6rem; - justify-content: center; - color: rgba(var(--text-color), 0.8); -} - -.option__icon { - height: 3rem; - width: 3rem; - padding: 0.8rem; - background: rgba(var(--text-color), 0.04); - border-radius: 1rem; -} - -.coral { - fill: #ff5e78; -} - -.violet { - fill: #845ec2; -} - -.option__title { - margin-top: 0.5rem; - font-weight: 500; -} - -#base_header { - position: relative; - width: 100%; -} - -.header__title { - font-size: 1.1rem; - font-weight: 700; - color: rgba(var(--text-color), 0.8); -} - -#search_contacts__input { - width: 100%; - --padding: 0.5rem; -} - -.search__icon { - height: 1.2rem; - width: 1.2rem; -} - -.expanding-search { - width: 14rem; -} - -.contact-option:not(:last-of-type) { - margin-right: 0.5rem; -} -.contact-option:first-of-type { - padding-right: 0.6rem; - margin-right: auto; - margin-left: -0.6rem; -} - -.contact-option__button { - display: inline-flex; - align-items: center; - border-radius: 0.3rem; - padding: 0.5rem 0.6rem; -} - -.contact-option__icon { - height: 1.2rem; - width: 1.2rem; - margin-right: 0.5rem; -} - -.contact-option__name { - font-weight: 500; - font-size: 0.9rem; - color: rgba(var(--text-color), 0.8); -} - -#contacts_container { - display: flex; - flex-direction: column; - max-height: 100%; - overflow-y: auto; - align-content: flex-start; - padding: 0 0 6rem 1rem; -} - -.contact-card { - position: relative; - overflow: hidden; - display: grid; - width: 100%; - gap: 1rem; - grid-template-columns: auto auto 1fr auto; - align-items: center; - padding: 0.5rem 0.6rem; - flex-shrink: 0; - cursor: pointer; - user-select: none; - align-self: flex-start; - justify-content: center; - border-radius: 0.3rem; - background: rgba(var(--foreground-color), 0.6); - -webkit-tap-highlight-color: transparent; -} - -.contact-card__checkbox { - --height: 1.5rem; - --width: 1.5rem; - --border-radius: 0.3rem; - --border-color: rgba(var(--text-color), 0.6); -} - -.contact-card__initial { - width: 2rem; - height: 2rem; - padding: 1.2rem; - font-size: 1.1rem; - border-radius: 50%; -} - -.contact-card__name { - font-weight: 500; - font-size: 1rem; - color: rgba(var(--text-color), 0.8); -} - -.contact-card__more { - padding: 0.4rem; -} - -#contacts_empty_state { - text-align: center; -} - -.empty-state__title { - font-weight: 400; - color: rgba(var(--text-color), 0.8); -} - -#show_contact_popup_button { right: 0; bottom: 0; margin: 1.5rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2); + z-index: 2; } -.page__header { - min-height: 4rem; - padding: 1rem; +#scroll_to_top { + border-radius: 3rem; + background-color: rgba(var(--foreground-color), 1); } -.page__title { - font-size: 1.1rem; +#add_address_button { + border-radius: 0.5rem; + color: rgba(var(--background-color), 1); + background-color: var(--accent-color); +} +#add_address_button .icon { + fill: rgba(var(--background-color), 1); } -#send_flo_form { +#transaction_result { + display: grid; + gap: 0.5rem; + height: max(40vh, 24rem); + align-items: center; + justify-content: center; + text-align: center; + align-content: center; +} +#transaction_result.success .icon--failed { + display: none; +} +#transaction_result.failed .icon--success { + display: none; +} +#transaction_result h3 { + text-align: center; width: 100%; - height: 100%; - padding: 0 1rem; - gap: 0.3; } - -.form__section { - align-content: flex-start; +#transaction_result .icon { + justify-self: center; + height: 4rem; + width: 4rem; + border-radius: 5rem; + margin-bottom: 1rem; + -webkit-animation: popup 1s; + animation: popup 1s; } - -.label { - font-size: 0.9rem; - margin-bottom: 0.3rem; - color: rgba(var(--text-color), 0.9); -} -.label:not(:first-of-type) { - margin-top: 0.8rem; -} - -#sent_flo_data { - --max-height: 12rem; -} - -#send_flo_button { - margin-top: 1.5rem; -} - -#balance_card { - width: 100%; +#transaction_result .icon--success { + fill: rgba(var(--background-color), 1); padding: 1rem; - margin-bottom: 1rem; - border-radius: 0.3rem; - background-color: rgba(var(--text-color), 0.04); + background-color: #0bbe56; +} +#transaction_result .icon--failed { + background-color: rgba(var(--text-color), 0.03); + fill: var(--danger-color); +} +#transaction_result sm-copy { + font-size: 0.8rem; } -#balance_card__input { - margin-bottom: 1rem; -} - -.balance_card__title { - font-size: 1rem; - font-weight: 500; - margin-bottom: 0.5rem; - color: rgba(var(--text-color), 0.8); -} - -.balance_card__description { - font-size: 0.9rem; - margin-bottom: 0.5rem; - color: rgba(var(--text-color), 0.8); -} - -#flo_balance { - word-break: break-all; - font-size: 2rem; - margin-bottom: 1rem; -} - -.settings__section { - padding: 0 1rem; - width: min(50ch, 100%); -} -.settings__section:not(:last-of-type) { - margin-bottom: 1rem; -} - -.setting__title { - color: rgba(var(--text-color), 0.9); -} - -.setting__description { - font-size: 0.9rem; - color: rgba(var(--text-color), 0.8); -} - -.toggle-grid { - gap: 0.3rem; - margin-right: 1rem; -} - -@media all and (max-width: 640px) { - .hide-on-mobile { - display: none; +@-webkit-keyframes popup { + 0% { + opacity: 0; + transform: scale(0.2) translateY(600%); } - - #main_card { - min-height: 100%; - grid-template-rows: auto 1fr auto; - grid-template-areas: "header" "page" "nav"; + 10% { + transform: scale(0.2) translateY(5rem); + opacity: 1; } - - #main_navbar { - flex-direction: row; + 40% { + transform: scale(0.2) translateY(0); } - - .navbar__item { - flex: 1; - flex-direction: column; + 80% { + transform: scale(1.1) translateY(0); } - - .navbar__item__icon { - margin: 0 0 0.5rem 0; - } - - .navbar__item__icon { - margin: 0 0 0.5rem 0; - } - - #dashboard_page__header { - padding-top: 0; - } - - .expanding-search { - background-color: rgba(var(--foreground-color), 1); - position: absolute; - z-index: 1; - width: 100%; + 100% { + transform: scale(1) translateY(0); } } -@media all and (min-width: 640px) { + +@keyframes popup { + 0% { + opacity: 0; + transform: scale(0.2) translateY(600%); + } + 10% { + transform: scale(0.2) translateY(5rem); + opacity: 1; + } + 40% { + transform: scale(0.2) translateY(0); + } + 80% { + transform: scale(1.1) translateY(0); + } + 100% { + transform: scale(1) translateY(0); + } +} +@media screen and (max-width: 40rem) { + #main_navbar.hide-away { + bottom: 0; + left: 0; + right: 0; + } +} +@media screen and (min-width: 40rem) { body { - align-items: center; - justify-content: center; - } - body #main_card { - background: rgba(var(--foreground-color), 1); - } - - body[data-theme=dark] #main_card { - background: rgba(var(--text-color), 0.04); + background-size: cover; } sm-popup { --width: 24rem; } - .hide-on-desktop { - display: none; + .popup__header { + grid-column: 1/-1; + padding: 1rem 1.5rem 0 1.5rem; } - .popup__header { - padding: 1rem 1.5rem 0 1rem; + body { + display: flex; + align-items: center; + justify-content: center; } #main_card { - position: relative; - width: 80vw; - height: 80vh; - border-radius: 0.2rem; - overflow: hidden; - grid-template-columns: 15rem 1fr; + display: grid; + grid-template-columns: auto 1fr; grid-template-rows: auto 1fr; - grid-template-areas: "header page" "nav page"; - box-shadow: 0 1.5rem 1.5rem rgba(0, 0, 0, 0.16); + grid-template-areas: "nav header" "nav main"; + position: relative; + border-radius: 0.5rem; + overflow: hidden; + box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.05), 0 1rem 3rem rgba(0, 0, 0, 0.2); + background-color: rgba(var(--foreground-color), 0.9); } #main_header { - padding: 1.5rem; + grid-area: header; + } + + #pages_container { + grid-area: main; } #main_navbar { + grid-area: nav; + border-top: none; flex-direction: column; height: 100%; - padding: 0 1rem; - align-content: flex-start; + } + #main_navbar ul { + flex-direction: column; + gap: 0.5rem; + padding: 0.3rem; + } + #main_navbar ul li:last-of-type { + margin-top: auto; } - .navbar__item__title { - font-size: 0.9rem; + .nav-item { + aspect-ratio: 1/1; } - - #page_container { - position: relative; - grid-row: 1/3; - } - #page_container::after { - content: ""; - position: absolute; + .nav-item__indicator { + width: 0.25rem; + height: 50%; left: 0; - height: 65%; - width: 1px; - background: rgba(var(--text-color), 0.2); - top: 50%; - transform: translateY(-50%); + border-radius: 0 1rem 1rem 0; + bottom: auto; } - .page__header { - min-height: 6.2rem; - padding: 1.5rem; + #create_flo_id_popup { + --width: 28rem; } - #contacts_container { - padding: 0 1rem 8rem 1.5rem; - } - - #send_flo_form { - gap: 1rem; - grid-template-columns: 1fr 1fr; - padding: 0 1.5rem 1.5rem 1.5rem; - } - - .settings__section { - padding: 0 1.5rem; + #send sm-form::part(form) { + align-items: flex-start; + grid-template-columns: 45% 1fr; } } -@media all and (min-width: 1280px) { +@media screen and (min-width: 56rem) { #main_card { - width: 65vw; - height: 85vh; - } -} -@media all and (min-width: 1920px) { - #main_card { - width: 60vw; - height: 65vh; + height: 80vh; + width: 56rem; } } @media (any-hover: hover) { @@ -749,25 +1085,25 @@ ul { background: rgba(var(--text-color), 0.5); } - .contact-card__checkbox:not([checked]):not(:focus-within) { - opacity: 0.4; - transition: opacity 0.3s; + .interact:not([disabled]) { + transition: background-color 0.3s; + } + .interact:not([disabled]):hover { + background-color: rgba(var(--text-color), 0.06); } - .contact-card__more:not(:focus-within) { - opacity: 0; - transition: opacity 0.3s; + .button:not([disabled]) { + transition: background-color 0.3s, filter 0.3s; } - - .contact-card:hover .contact-card__checkbox, -.contact-card:hover .contact-card__more { - opacity: 1; + .button:not([disabled]):hover { + filter: contrast(2); } - - .contact-option__button { - transition: background 0.3s; - } - .contact-option__button:hover { - background-color: rgba(var(--text-color), 0.1); +} +@supports (overflow: overlay) { + body { + overflow: overlay; } +} +.hide { + display: none !important; } \ No newline at end of file diff --git a/css/main.min.css b/css/main.min.css index 74d2c93..a24ef19 100644 --- a/css/main.min.css +++ b/css/main.min.css @@ -1 +1 @@ -.option__icon,body{background:rgba(var(--text-color),.04)}.interact,.overflow-ellipsis,button{overflow:hidden}.contact-card,.interact,button{cursor:pointer;-webkit-tap-highlight-color:transparent}#contacts_empty_state,.initial{text-align:center}.button__icon,.icon{fill:rgba(var(--text-color),.7)}*,::after,::before{padding:0;margin:0;box-sizing:border-box;font-family:Roboto,sans-serif}:root{height:100%;font-size:clamp(1rem,1.2vmax,3rem);--ease-in-overshhot:cubic-bezier(0.6, -0.28, 0.735, 0.045);--ease-out-overshhot:cubic-bezier(0.175, 0.885, 0.32, 1.275)}body{--accent-color:#6300d4;--text-color:17,17,17;--text-color-light:100,100,100;--foreground-color:255,255,255;--background-color:#efefef;--error-color:red;color:rgba(var(--text-color),1);height:calc(100%)}body[data-theme=dark]{--accent-color:#c64aff;--text-color:240,240,240;--text-color-light:170,170,170;--foreground-color:20,20,20;--error-color:rgb(255, 106, 106);background:rgba(var(--foreground-color),1)}button{position:relative;display:inline-flex;border:none;background:0 0;outline:0}button:focus-visible{outline:solid rgba(var(--text-color),1)}sm-input,sm-textarea{--border-radius:0.3rem;--background:rgba(var(--text-color), 0.1)}sm-button[variant=primary]{--padding:0.8rem 1.5rem;margin-top:1rem}ul{list-style:none}.flex{display:flex}.grid{display:grid}.align-center{align-items:center}#confirmation_popup,#prompt_popup,.direction-column{flex-direction:column}.justify-right{margin-left:auto}.space-between{justify-content:space-between}.full-width{width:100%}.hide{opacity:0;pointer-events:none}.hide-completely{display:none!important}.no-transformations{transform:none!important}.overflow-ellipsis{width:100%;white-space:nowrap;text-overflow:ellipsis}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(var(--text-color),.16);pointer-events:none}.interact,.navbar__item,.page{position:relative}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)~.empty-state{display:none}.icon{width:1.5rem;height:1.5rem}#confirmation_popup h4,#prompt_popup h4{font-weight:500;margin-bottom:.5rem}#confirmation_popup sm-button,#prompt_popup sm-button{margin:0}#confirmation_popup .flex,#prompt_popup .flex{padding:0;margin-top:1rem}#confirmation_popup .flex sm-button:first-of-type,#prompt_popup .flex sm-button:first-of-type{margin-right:.6rem;margin-left:auto}.popup__header{padding:.5rem 1.5rem 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:center;width:100%}.popup__header__close{padding:.5rem;cursor:pointer}.icon-only{height:2.6rem;width:2.6rem;padding:.6rem}.close-icon{padding:.3rem}.initial{display:flex;user-select:none;align-items:center;justify-content:center;font-weight:500;color:rgba(var(--foreground-color),1);background-color:rgba(var(--text-color),.1)}#contact_popup{--body-padding:0}#contact_popup__initial{align-self:center;width:5rem;height:5rem;padding:1rem;margin:1rem 0;font-size:2rem;border-radius:50%}#contact_popup__name{align-self:center;font-weight:700;font-size:1.2rem}.contact__copy-row{padding:0 1.5rem;margin:1rem 0}.copy-label{font-weight:500;color:rgba(var(--text-color),.8)}.flo-id-grid{gap:.5rem;grid-template-columns:1fr auto}.copy-button{padding:.4rem}#contact_popup__options{padding:1rem 0}.contact__option{font-size:1rem;padding:.8rem 1.5rem;font-weight:500;color:rgba(var(--text-color),.8)}.button__title{margin-left:1rem}#main_card{height:100%;width:100%;grid-row:1/3}#main_header{grid-area:header;height:max-content;gap:.2rem 1rem;padding:1rem;grid-template-columns:auto 1fr;grid-template-areas:"logo company" "logo app"}#main_header__logo{width:1.8rem;height:1.8rem;grid-area:logo}#page_container{grid-area:page;overflow-y:hidden}#contacts_container,.page{overflow-y:auto;align-content:flex-start}.page{display:flex;flex-direction:column;height:100%;width:100%}.header__company-name{grid-area:company;font-weight:500;color:rgba(var(--text-color),.7);align-self:flex-end}.header__app-name{align-self:flex-start;line-height:1;grid-area:app;font-weight:700;color:rgba(var(--text-color),.9)}#main_navbar{grid-area:nav}.navbar__item{display:flex;align-items:center;padding:.8rem;border-radius:.5rem}.navbar__item--active .navbar__item__icon{fill:var(--accent-color)}.navbar__item--active .navbar__item__title{color:var(--accent-color)}.navbar__item__icon{margin-right:1rem;fill:rgba(var(--text-color),.7)}.navbar__item__title{font-size:.8rem;font-weight:500;color:rgba(var(--text-color),.7)}.contact-card__name,.contact-option__name,.empty-state__title,.flo-options__item,.header__title{color:rgba(var(--text-color),.8)}.fab{position:absolute;display:inline-flex;border-radius:5rem;aspect-ratio:1/1;padding:.7rem;background:#FF1F1F;box-shadow:0 .5rem .5rem rgba(0,0,0,.16)}.fab__icon{height:1.8rem;width:1.8rem;fill:#fff}#flo_options{padding:1rem}.flo-options__item{padding:.8rem;max-width:6rem;justify-content:center}.option__icon{height:3rem;width:3rem;padding:.8rem;border-radius:1rem}.coral{fill:#ff5e78}.violet{fill:#845ec2}.option__title{margin-top:.5rem;font-weight:500}#base_header{position:relative;width:100%}.header__title{font-size:1.1rem;font-weight:700}#search_contacts__input{width:100%;--padding:0.5rem}.search__icon{height:1.2rem;width:1.2rem}.expanding-search{width:14rem}.contact-option:not(:last-of-type){margin-right:.5rem}.contact-option:first-of-type{padding-right:.6rem;margin-right:auto;margin-left:-.6rem}.contact-option__button{display:inline-flex;align-items:center;border-radius:.3rem;padding:.5rem .6rem}.contact-option__icon{height:1.2rem;width:1.2rem;margin-right:.5rem}.contact-option__name{font-weight:500;font-size:.9rem}#contacts_container{display:flex;flex-direction:column;max-height:100%;padding:0 0 6rem 1rem}.contact-card{position:relative;overflow:hidden;display:grid;width:100%;gap:1rem;grid-template-columns:auto auto 1fr auto;align-items:center;padding:.5rem .6rem;flex-shrink:0;user-select:none;align-self:flex-start;justify-content:center;border-radius:.3rem;background:rgba(var(--foreground-color),.6)}.contact-card__checkbox{--height:1.5rem;--width:1.5rem;--border-radius:0.3rem;--border-color:rgba(var(--text-color), 0.6)}.contact-card__initial{width:2rem;height:2rem;padding:1.2rem;font-size:1.1rem;border-radius:50%}.contact-card__name{font-weight:500;font-size:1rem}.contact-card__more{padding:.4rem}.empty-state__title{font-weight:400}#show_contact_popup_button{right:0;bottom:0;margin:1.5rem}.page__header{min-height:4rem;padding:1rem}.page__title{font-size:1.1rem}#send_flo_form{width:100%;height:100%;padding:0 1rem;gap:.3}.form__section{align-content:flex-start}.label{font-size:.9rem;margin-bottom:.3rem;color:rgba(var(--text-color),.9)}#balance_card,#balance_card__input{margin-bottom:1rem}.label:not(:first-of-type){margin-top:.8rem}#sent_flo_data{--max-height:12rem}#send_flo_button{margin-top:1.5rem}#balance_card{width:100%;padding:1rem;border-radius:.3rem;background-color:rgba(var(--text-color),.04)}.balance_card__description,.balance_card__title{margin-bottom:.5rem;color:rgba(var(--text-color),.8)}.balance_card__title{font-size:1rem;font-weight:500}.balance_card__description{font-size:.9rem}#flo_balance{word-break:break-all;font-size:2rem;margin-bottom:1rem}.settings__section{padding:0 1rem;width:min(50ch,100%)}.settings__section:not(:last-of-type){margin-bottom:1rem}.setting__title{color:rgba(var(--text-color),.9)}.setting__description{font-size:.9rem;color:rgba(var(--text-color),.8)}.toggle-grid{gap:.3rem;margin-right:1rem}@media all and (max-width:640px){.hide-on-mobile{display:none}#main_card{min-height:100%;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "page" "nav"}#main_navbar{flex-direction:row}.navbar__item{flex:1;flex-direction:column}.navbar__item__icon{margin:0 0 .5rem}#dashboard_page__header{padding-top:0}.expanding-search{background-color:rgba(var(--foreground-color),1);position:absolute;z-index:1;width:100%}}@media all and (min-width:640px){body{align-items:center;justify-content:center}body #main_card{background:rgba(var(--foreground-color),1)}body[data-theme=dark] #main_card{background:rgba(var(--text-color),.04)}sm-popup{--width:24rem}.hide-on-desktop{display:none}.popup__header{padding:1rem 1.5rem 0 1rem}#main_card{position:relative;width:80vw;height:80vh;border-radius:.2rem;overflow:hidden;grid-template-columns:15rem 1fr;grid-template-rows:auto 1fr;grid-template-areas:"header page" "nav page";box-shadow:0 1.5rem 1.5rem rgba(0,0,0,.16)}#main_header{padding:1.5rem}#main_navbar{flex-direction:column;height:100%;padding:0 1rem;align-content:flex-start}.navbar__item__title{font-size:.9rem}#page_container{position:relative;grid-row:1/3}#page_container::after{content:"";position:absolute;left:0;height:65%;width:1px;background:rgba(var(--text-color),.2);top:50%;transform:translateY(-50%)}.page__header{min-height:6.2rem;padding:1.5rem}#contacts_container{padding:0 1rem 8rem 1.5rem}#send_flo_form{gap:1rem;grid-template-columns:1fr 1fr;padding:0 1.5rem 1.5rem}.settings__section{padding:0 1.5rem}}@media all and (min-width:1280px){#main_card{width:65vw;height:85vh}}@media all and (min-width:1920px){#main_card{width:60vw;height:65vh}}@media (any-hover:hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color),.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color),.5)}.contact-card__checkbox:not([checked]):not(:focus-within){opacity:.4;transition:opacity .3s}.contact-card__more:not(:focus-within){opacity:0;transition:opacity .3s}.contact-card:hover .contact-card__checkbox,.contact-card:hover .contact-card__more{opacity:1}.contact-option__button{transition:background .3s}.contact-option__button:hover{background-color:rgba(var(--text-color),.1)}} \ No newline at end of file +*{padding:0;margin:0;box-sizing:border-box;font-family:"Roboto",sans-serif}:root{font-size:clamp(1rem,1.2vmax,1.2rem)}html,body{height:100%}body{--accent-color: #256eff;--text-color: 20, 20, 20;--background-color: 240, 240, 240;--foreground-color: 250, 250, 250;--danger-color: rgb(255, 75, 75);--green: #1cad59;scrollbar-width:thin;scrollbar-gutter:stable;color:rgba(var(--text-color), 1);background-color:rgba(var(--background-color), 1);transition:background-color .3s;--dark-red: #d40e1e;--red: #f50000;--kinda-pink: #e40273;--purple: #462191;--shady-blue: #324de6;--nice-blue: #256eff;--maybe-cyan: #00b0ff;--teal: #00bcd4;--mint-green: #16c79a;--yellowish-green: #66bb6a;--greenish-yellow: #8bc34a;--dark-teal: #11698e;--tangerine: #ff6f00;--orange: #ff9100;--redish-orange: #ff3d00}body[data-theme=dark]{--accent-color: #86afff;--text-color: 220, 220, 220;--background-color: 10, 10, 10;--foreground-color: 24, 24, 24;--danger-color: rgb(255, 106, 106);--green: #00e676;--dark-red: #ff5e7e;--red: #ff6098;--kinda-pink: #c44ae6;--purple: #9565f7;--shady-blue: #7084f5;--nice-blue: #86afff;--maybe-cyan: #66cfff;--teal: #6aeeff;--mint-green: #4dffd2;--yellowish-green: #9effa2;--greenish-yellow: #c7fc8b;--dark-teal: #51cbff;--tangerine: #ffac6d;--orange: #ffbe68;--redish-orange: #ff8560}body[data-theme=dark] sm-popup::part(popup){background-color:rgba(var(--foreground-color), 1)}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}p:not(:last-of-type),strong:not(:last-of-type){margin-bottom:1.5rem}a{text-decoration:none;color:var(--accent-color)}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color), 1) inset}button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:inline-flex;border:none;background-color:transparent;overflow:hidden;color:inherit;-webkit-tap-highlight-color:transparent;align-items:center;font-size:.9rem;font-weight:500;white-space:nowrap;padding:.8rem;border-radius:.3rem;justify-content:center}button:focus-visible{outline:var(--accent-color) solid medium}button:not(:disabled){cursor:pointer}.button{background-color:rgba(var(--text-color), 0.06)}.button--primary,.button--danger{color:rgba(var(--background-color), 1)}.button--primary .icon,.button--danger .icon{fill:rgba(var(--background-color), 1)}.button--primary{background-color:var(--accent-color)}.button--danger{background-color:var(--danger-color)}.cta{text-transform:uppercase;font-size:.8rem;font-weight:700;letter-spacing:.05em}.icon-only{padding:.5rem;border-radius:.3rem}button:disabled{opacity:.5}a:-webkit-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:-moz-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}details{padding:1rem 0}details summary{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;align-items:center;justify-content:space-between;color:var(--accent-color)}details[open] summary{margin-bottom:1rem}details[open]>summary .down-arrow{transform:rotate(180deg)}sm-input,sm-textarea{font-size:.9rem;--border-radius: 0.3rem;--background-color: rgba(var(--foreground-color), 1)}sm-input button .icon,sm-textarea button .icon{fill:var(--accent-color)}sm-button{--padding: 0.6rem 0.8rem}sm-button[variant=primary] .icon{fill:rgba(var(--background-color), 1)}sm-button[disabled] .icon{fill:rgba(var(--text-color), 0.6)}sm-button.danger{--background: var(--danger-color);color:rgba(var(--background-color), 1)}sm-spinner{--size: 1rem;--stroke-width: 0.1rem}sm-form{--gap: 1rem}strip-select{--gap: 0;background-color:rgba(var(--text-color), 0.06);border-radius:.3rem;padding:.3rem}strip-option{font-size:.8rem;--border-radius: 0.2rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ul{list-style:none}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breakable{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.full-bleed{grid-column:1/-1}.h1{font-size:1.5rem}.h2{font-size:1.2rem}h3{font-size:1.2rem;line-height:1.3}.h4{font-size:.9rem}.h5{font-size:.75rem}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-content:flex-start}.align-center{align-items:center}.align-end{align-items:flex-end}.text-center{text-align:center}.justify-start{justify-content:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.ripple{height:8rem;width:8rem;position:absolute;border-radius:50%;transform:scale(0);background:radial-gradient(circle, rgba(var(--text-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%);pointer-events:none}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.interact{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.empty-state{display:grid;width:100%;padding:1.5rem 0}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)+.empty-state{display:none}.bullet-point{display:flex;align-items:center;justify-content:center;margin:0 .8ch}.bullet-point::after{content:"";height:.4ch;width:.4ch;border-radius:.5em;background-color:var(--accent-color)}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.margin-right-0-5{margin-right:.5rem}.margin-left-0-5{margin-left:.5rem}.icon-button{padding:.6rem;border-radius:.8rem;background-color:rgba(var(--text-color), 0.1);height:-webkit-max-content;height:-moz-max-content;height:max-content}.icon-button .icon{fill:var(--accent-color)}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{font-weight:500;margin-bottom:.5rem}#confirmation_popup sm-button,#prompt_popup sm-button{margin:0}#confirmation_popup .flex,#prompt_popup .flex{padding:0;margin-top:1rem}#confirmation_popup .flex sm-button:first-of-type,#prompt_popup .flex sm-button:first-of-type{margin-right:.6rem;margin-left:auto}#prompt_message{margin-bottom:1.5rem}.popup__header{display:grid;gap:.5rem;width:100%;padding:0 1.5rem;align-items:center;grid-auto-flow:column}.popup__header__close{padding:.5rem;margin-left:-0.5rem;cursor:pointer}textarea{color:inherit;width:100%;font-size:1em;display:flex;background-color:transparent;padding:1em;border-radius:.3rem;border:none;font-family:inherit;transition:box-shadow .2s;outline:none;caret-color:var(--accent-color, teal);resize:none;line-height:1.6}.textarea{display:grid;width:100%;align-self:flex-start;position:relative;border-radius:.3rem;padding:1rem .8rem;background-color:rgba(var(--text-color), 0.06);transition:box-shadow .2s}.textarea>*{padding:0;grid-area:1/1/2/2}.textarea .label{align-self:flex-start;pointer-events:none;opacity:.6;transition:transform .2s,color .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transform-origin:left;will-change:transform}.textarea.label-active .label{opacity:1;transform:translateY(-60%) scale(0.8);color:var(--accent-color)}.textarea.label-active textarea{transform:translateY(0.5rem)}.textarea:focus-within{box-shadow:0 0 0 .1rem var(--accent-color) inset}.textarea:focus-within>*{box-shadow:none}#show_character_count{font-size:.8rem;margin-left:auto}#flo_data_status:not(:empty){color:red;padding:.5rem 0}#saved_ids_popup{--height: 80vh}#main_header{padding:1rem 1.5rem}#main_card{display:flex;flex-direction:column;height:100%;width:100%;background-color:rgba(var(--foreground-color), 1);transition:background-color .3s}#pages_container{flex:1;overflow-y:auto}#main_navbar{display:flex;background:rgba(var(--text-color), 0.03)}#main_navbar.hide-away{position:absolute}#main_navbar ul{display:flex;height:100%;width:100%}#main_navbar ul li{width:100%}.nav-item{position:relative;display:flex;flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .3rem;color:var(--text-color);font-size:.7rem;border-radius:.3rem}.nav-item .icon{transition:transform .2s}.nav-item__title{margin-top:.3rem;transition:opacity .2s,transform .2s}.nav-item--active{color:var(--accent-color)}.nav-item--active .icon{fill:var(--accent-color);transform:translateY(50%)}.nav-item--active .nav-item__title{transform:translateY(100%);opacity:0}.nav-item__indicator{position:absolute;bottom:0;width:2rem;height:.3rem;background:var(--accent-color);border-radius:1rem 1rem 0 0;z-index:1}#fix_invalid_button{margin-bottom:1rem !important}#get_private_key_field label{display:flex}#get_private_key_field label input:checked~.visible{display:none}#get_private_key_field label input:not(:checked)~.invisible{display:none}.multi-state-button{display:grid;text-align:center;align-items:center}.multi-state-button>*{grid-area:1/1/2/2}.multi-state-button button{z-index:1}.clip{-webkit-clip-path:circle(0);clip-path:circle(0)}#flo_id_warning{padding-bottom:1.5rem;border-bottom:thin solid rgba(var(--text-color), 0.3)}#flo_id_warning .icon{height:4rem;width:4rem;padding:1rem;background-color:#ffc107;border-radius:3rem;fill:rgba(0,0,0,.8);margin-bottom:1.5rem}.generated-id-card{display:grid;gap:1rem}.generated-id-card h5{margin-bottom:.3rem}#home{padding:0}#home>:first-child{overflow-y:auto;align-content:flex-start;padding:.5rem 1.5rem 4rem 1.5rem}.primary-action{display:flex;padding:.8rem 1rem;gap:.5rem;white-space:normal;font-size:.8rem;border-radius:.5rem;background-color:transparent;border:thin solid rgba(var(--text-color), 0.3)}.primary-action .icon{fill:var(--accent-color)}.primary-action:not(:last-of-type){margin-right:.5rem}#saved_ids_list{position:relative;align-content:flex-start;padding-bottom:1.5rem;margin-top:1rem;gap:1rem;grid-template-columns:repeat(auto-fill, minmax(16rem, 1fr))}.saved-id{grid-template-columns:auto 1fr;gap:0 .8rem;border-radius:.3rem;padding:.5rem;background-color:rgba(var(--text-color), 0.03);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.saved-id.highlight{box-shadow:0 0 .1rem .1rem var(--accent-color) inset}.saved-id .edit-saved{grid-area:1/1/3/2;padding:.3rem;position:relative}.saved-id .edit-saved .icon{position:absolute;height:1.2rem;width:1.2rem;right:0;bottom:0;border-radius:.5rem;padding:.2rem;background-color:rgba(var(--background-color), 1)}.saved-id__initial{display:flex;align-items:center;justify-content:center;height:2.4rem;width:2.4rem;font-size:1.2rem;text-transform:uppercase;color:rgba(var(--background-color), 1);font-weight:700;line-height:1;background-color:var(--accent-color);justify-self:flex-start;border-radius:2rem}.saved-id__label{align-self:flex-end}.saved-id__flo-id{font-size:.8rem}.page{position:relative;display:flex;flex-direction:column;overflow-y:auto;align-content:flex-start;padding:0 1.5rem;padding-bottom:3rem}#transactions{position:relative;height:100%;padding:0}#transactions header{padding:1rem}#transactions header .grid{grid-template-columns:auto 1fr auto}#flo_id_name{overflow:hidden;text-overflow:ellipsis}#token_list{display:flex;flex-wrap:wrap;gap:.5rem}.token-item{font-size:.9rem;padding:.5rem 1rem;background-color:rgba(var(--text-color), 0.06);border-radius:.3rem}#transactions_list{flex-direction:column;padding-bottom:4rem}.transaction{gap:1rem;padding:1rem;background-color:rgba(var(--text-color), 0.03);border-radius:.3rem}.transaction:not(:last-of-type){margin-bottom:1rem}.transaction .icon{fill:var(--accent-color)}.transaction__time,.transaction__link,.transaction__receiver{font-size:.8rem}.transaction__receiver{margin-left:.5rem;color:rgba(var(--text-color), 0.8)}.transaction p{font-size:.9rem;max-width:unset}.transaction__time{justify-self:flex-end;color:rgba(var(--text-color), 0.8)}.fab{position:absolute;right:0;bottom:0;margin:1.5rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.2);z-index:2}#scroll_to_top{border-radius:3rem;background-color:rgba(var(--foreground-color), 1)}#add_address_button{border-radius:.5rem;color:rgba(var(--background-color), 1);background-color:var(--accent-color)}#add_address_button .icon{fill:rgba(var(--background-color), 1)}#transaction_result{display:grid;gap:.5rem;height:max(40vh,24rem);align-items:center;justify-content:center;text-align:center;align-content:center}#transaction_result.success .icon--failed{display:none}#transaction_result.failed .icon--success{display:none}#transaction_result h3{text-align:center;width:100%}#transaction_result .icon{justify-self:center;height:4rem;width:4rem;border-radius:5rem;margin-bottom:1rem;-webkit-animation:popup 1s;animation:popup 1s}#transaction_result .icon--success{fill:rgba(var(--background-color), 1);padding:1rem;background-color:#0bbe56}#transaction_result .icon--failed{background-color:rgba(var(--text-color), 0.03);fill:var(--danger-color)}#transaction_result sm-copy{font-size:.8rem}@-webkit-keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@media screen and (max-width: 40rem){#main_navbar.hide-away{bottom:0;left:0;right:0}}@media screen and (min-width: 40rem){body{background-size:cover}sm-popup{--width: 24rem}.popup__header{grid-column:1/-1;padding:1rem 1.5rem 0 1.5rem}body{display:flex;align-items:center;justify-content:center}#main_card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"nav header" "nav main";position:relative;border-radius:.5rem;overflow:hidden;box-shadow:0 .1rem .2rem rgba(0,0,0,.05),0 1rem 3rem rgba(0,0,0,.2);background-color:rgba(var(--foreground-color), 0.9)}#main_header{grid-area:header}#pages_container{grid-area:main}#main_navbar{grid-area:nav;border-top:none;flex-direction:column;height:100%}#main_navbar ul{flex-direction:column;gap:.5rem;padding:.3rem}#main_navbar ul li:last-of-type{margin-top:auto}.nav-item{aspect-ratio:1/1}.nav-item__indicator{width:.25rem;height:50%;left:0;border-radius:0 1rem 1rem 0;bottom:auto}#create_flo_id_popup{--width: 28rem}#send sm-form::part(form){align-items:flex-start;grid-template-columns:45% 1fr}}@media screen and (min-width: 56rem){#main_card{height:80vh;width:56rem}}@media(any-hover: hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color), 0.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color), 0.5)}.interact:not([disabled]){transition:background-color .3s}.interact:not([disabled]):hover{background-color:rgba(var(--text-color), 0.06)}.button:not([disabled]){transition:background-color .3s,filter .3s}.button:not([disabled]):hover{filter:contrast(2)}}@supports(overflow: overlay){body{overflow:overlay}}.hide{display:none !important} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss index bfb511c..8c26a36 100644 --- a/css/main.scss +++ b/css/main.scss @@ -1,699 +1,1044 @@ -*, -::before, -::after{ - padding: 0; - margin: 0; - box-sizing: border-box; - font-family: 'Roboto', sans-serif; -} -:root{ - height: 100%; - font-size: clamp(1rem, 1.2vmax, 3rem); - --ease-in-overshhot: cubic-bezier(0.6, -0.28, 0.735, 0.045); - --ease-out-overshhot: cubic-bezier(0.175, 0.885, 0.32, 1.275); +* { + padding: 0; + margin: 0; + box-sizing: border-box; + font-family: "Roboto", sans-serif; } -body{ - --accent-color: #6300d4; - --text-color: 17, 17, 17; - --text-color-light: 100, 100, 100; - --foreground-color: 255, 255, 255; - --background-color: #efefef; - --error-color: red; - color: rgba(var(--text-color), 1); - height: calc(100%); - background: rgba(var(--text-color), 0.04); + +:root { + font-size: clamp(1rem, 1.2vmax, 1.2rem); } -body[data-theme='dark']{ - --accent-color:#c64aff; - --text-color: 240, 240, 240; - --text-color-light: 170, 170, 170; - --foreground-color: 20, 20, 20; - --error-color: rgb(255, 106, 106); - background: rgba(var(--foreground-color), 1); + +html, +body { + height: 100%; } -button{ - position: relative; - overflow: hidden; - display: inline-flex; - border: none; - background: none; + +body { + --accent-color: #256eff; + --text-color: 20, 20, 20; + --background-color: 240, 240, 240; + --foreground-color: 250, 250, 250; + --danger-color: rgb(255, 75, 75); + --green: #1cad59; + scrollbar-width: thin; + scrollbar-gutter: stable; + color: rgba(var(--text-color), 1); + background-color: rgba(var(--background-color), 1); + transition: background-color 0.3s; + // Accent colors + --dark-red: #d40e1e; + --red: #f50000; + --kinda-pink: #e40273; + --purple: #462191; + --shady-blue: #324de6; + --nice-blue: #256eff; + --maybe-cyan: #00b0ff; + --teal: #00bcd4; + --mint-green: #16c79a; + --yellowish-green: #66bb6a; + --greenish-yellow: #8bc34a; + --dark-teal: #11698e; + --tangerine: #ff6f00; + --orange: #ff9100; + --redish-orange: #ff3d00; +} + +body[data-theme="dark"] { + --accent-color: #86afff; + --text-color: 220, 220, 220; + --background-color: 10, 10, 10; + --foreground-color: 24, 24, 24; + --danger-color: rgb(255, 106, 106); + --green: #00e676; + // Accent colors + --dark-red: #ff5e7e; + --red: #ff6098; + --kinda-pink: #c44ae6; + --purple: #9565f7; + --shady-blue: #7084f5; + --nice-blue: #86afff; + --maybe-cyan: #66cfff; + --teal: #6aeeff; + --mint-green: #4dffd2; + --yellowish-green: #9effa2; + --greenish-yellow: #c7fc8b; + --dark-teal: #51cbff; + --tangerine: #ffac6d; + --orange: #ffbe68; + --redish-orange: #ff8560; + sm-popup::part(popup) { + background-color: rgba(var(--foreground-color), 1); + } +} + +p, +strong { + font-size: 0.9rem; + max-width: 65ch; + line-height: 1.7; + color: rgba(var(--text-color), 0.9); + + &:not(:last-of-type) { + margin-bottom: 1.5rem; + } +} +a { + text-decoration: none; + color: var(--accent-color); + &:focus-visible { + box-shadow: 0 0 0 0.1rem rgba(var(--text-color), 1) inset; + } +} + +button { + user-select: none; + position: relative; + display: inline-flex; + border: none; + background-color: transparent; + overflow: hidden; + color: inherit; + -webkit-tap-highlight-color: transparent; + align-items: center; + font-size: 0.9rem; + font-weight: 500; + white-space: nowrap; + padding: 0.8rem; + border-radius: 0.3rem; + justify-content: center; + &:focus-visible { + outline: var(--accent-color) solid medium; + } + &:not(:disabled) { cursor: pointer; - outline: none; - -webkit-tap-highlight-color: transparent; + } } -button:focus-visible{ - outline: rgba(var(--text-color), 1) 0.1rem solid; +.button { + background-color: rgba(var(--text-color), 0.06); } +.button--primary, +.button--danger { + color: rgba(var(--background-color), 1); + .icon { + fill: rgba(var(--background-color), 1); + } +} +.button--primary { + background-color: var(--accent-color); +} +.button--danger { + background-color: var(--danger-color); +} +.cta { + text-transform: uppercase; + font-size: 0.8rem; + font-weight: 700; + letter-spacing: 0.05em; +} +.icon-only { + padding: 0.5rem; + border-radius: 0.3rem; +} + +button:disabled { + opacity: 0.5; +} + +a:any-link:focus-visible { + outline: rgba(var(--text-color), 1) 0.1rem solid; +} +details { + padding: 1rem 0; +} + +details summary { + display: flex; + user-select: none; + cursor: pointer; + align-items: center; + justify-content: space-between; + color: var(--accent-color); +} + +details[open] { + & summary { + margin-bottom: 1rem; + } + & > summary .down-arrow { + transform: rotate(180deg); + } +} + sm-input, -sm-textarea{ - --border-radius: 0.3rem; - --background: rgba(var(--text-color), 0.1); +sm-textarea { + font-size: 0.9rem; + --border-radius: 0.3rem; + --background-color: rgba(var(--foreground-color), 1); + button { + .icon { + fill: var(--accent-color); + } + } } -sm-button[variant="primary"]{ - --padding: 0.8rem 1.5rem; - margin-top: 1rem; +sm-button { + --padding: 0.6rem 0.8rem; + &[variant="primary"] { + .icon { + fill: rgba(var(--background-color), 1); + } + } + + &[disabled] { + .icon { + fill: rgba(var(--text-color), 0.6); + } + } + &.danger { + --background: var(--danger-color); + color: rgba(var(--background-color), 1); + } } -ul{ - list-style: none; +sm-spinner { + --size: 1rem; + --stroke-width: 0.1rem; } -.flex{ - display: flex; +sm-form { + --gap: 1rem; } -.grid{ - display: grid; +strip-select { + --gap: 0; + background-color: rgba(var(--text-color), 0.06); + border-radius: 0.3rem; + padding: 0.3rem; } -.align-center{ - align-items: center; +strip-option { + font-size: 0.8rem; + --border-radius: 0.2rem; + user-select: none; } -.justify-right{ - margin-left: auto; +ul { + list-style: none; } -.direction-column{ - flex-direction: column; + +.overflow-ellipsis { + width: 100%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } -.space-between{ - justify-content: space-between; + +.breakable { + overflow-wrap: break-word; + word-wrap: break-word; + word-break: break-word; + hyphens: auto; } -.full-width{ - width: 100%; + +.full-bleed { + grid-column: 1/-1; } -.hide{ - opacity: 0; - pointer-events: none; + +.h1 { + font-size: 1.5rem; } -.hide-completely{ - display: none !important; + +.h2 { + font-size: 1.2rem; } -.no-transformations{ - transform: none !important; + +h3 { + font-size: 1.2rem; + line-height: 1.3; } -.overflow-ellipsis{ - width: 100%; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; + +.h4 { + font-size: 0.9rem; } -.ripple{ - position: absolute; - border-radius: 50%; - transform: scale(0); - background: rgba(var(--text-color), 0.16); - pointer-events: none; + +.h5 { + font-size: 0.75rem; } -.interact{ - position: relative; - overflow: hidden; - cursor: pointer; - -webkit-tap-highlight-color: transparent; +.uppercase { + text-transform: uppercase; } -.observe-empty-state:empty{ - display: none; + +.capitalize { + text-transform: capitalize; } -.observe-empty-state:not(:empty) ~ .empty-state{ - display: none; + +.sticky { + position: sticky; } -.icon{ - width: 1.5rem; - height: 1.5rem; - fill: rgba(var(--text-color), 0.7); +.top-0 { + top: 0; +} + +.flex { + display: flex; +} +.flex-wrap { + flex-wrap: wrap; +} + +.grid { + display: grid; +} +.flow-column { + grid-auto-flow: column; +} + +.gap-0-5 { + gap: 0.5rem; +} + +.gap-1 { + gap: 1rem; +} + +.gap-1-5 { + gap: 1.5rem; +} + +.gap-2 { + gap: 2rem; +} + +.gap-3 { + gap: 3rem; +} + +.text-align-right { + text-align: right; +} + +.align-start { + align-content: flex-start; +} + +.align-center { + align-items: center; +} +.align-end { + align-items: flex-end; +} + +.text-center { + text-align: center; +} + +.justify-start { + justify-content: start; +} + +.justify-center { + justify-content: center; +} + +.justify-right { + margin-left: auto; +} + +.align-self-center { + align-self: center; +} + +.justify-self-center { + justify-self: center; +} + +.justify-self-start { + justify-self: start; +} + +.justify-self-end { + justify-self: end; +} + +.direction-column { + flex-direction: column; +} + +.space-between { + justify-content: space-between; +} + +.w-100 { + width: 100%; +} +.h-100 { + height: 100%; +} + +.ripple { + height: 8rem; + width: 8rem; + position: absolute; + border-radius: 50%; + transform: scale(0); + background: radial-gradient( + circle, + rgba(var(--text-color), 0.3) 0%, + rgba(0, 0, 0, 0) 50% + ); + pointer-events: none; +} +.button--primary, +.button--danger { + .ripple { + background: radial-gradient( + circle, + rgba(var(--background-color), 0.3) 0%, + rgba(0, 0, 0, 0) 50% + ); + } +} +.interact { + position: relative; + overflow: hidden; + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} +.empty-state { + display: grid; + width: 100%; + padding: 1.5rem 0; +} + +.observe-empty-state:empty { + display: none; +} + +.observe-empty-state:not(:empty) + .empty-state { + display: none; +} + +.bullet-point { + display: flex; + align-items: center; + justify-content: center; + margin: 0 0.8ch; + &::after { + content: ""; + height: 0.4ch; + width: 0.4ch; + border-radius: 0.5em; + background-color: var(--accent-color); + } +} +.icon { + width: 1.2rem; + height: 1.2rem; + fill: rgba(var(--text-color), 0.8); + flex-shrink: 0; +} +.margin-right-0-5 { + margin-right: 0.5rem; +} + +.margin-left-0-5 { + margin-left: 0.5rem; +} + +.icon-button { + padding: 0.6rem; + border-radius: 0.8rem; + background-color: rgba(var(--text-color), 0.1); + height: max-content; + .icon { + fill: var(--accent-color); + } } #confirmation_popup, #prompt_popup { - flex-direction: column; - h4 { - font-weight: 500; - margin-bottom: 0.5rem; - } - sm-button{ - margin: 0; - } - .flex { - padding: 0; - margin-top: 1rem; - sm-button:first-of-type { - margin-right: 0.6rem; - margin-left: auto; - } - } -} -.popup__header{ - padding: 0.5rem 1.5rem 0 1rem; - display: grid; - grid-template-columns: auto 1fr; - gap: 0.5rem; - align-items: center; - width: 100%; -} -.popup__header__close{ - padding: 0.5rem; - cursor: pointer; -} -.icon-only{ - height: 2.6rem; - width: 2.6rem; - padding: 0.6rem; -} -.close-icon{ - padding: 0.3rem; -} -.initial{ - display: flex; - text-align: center; - user-select: none; - align-items: center; - justify-content: center; + flex-direction: column; + h4 { font-weight: 500; - color: rgba(var(--foreground-color), 1); - background-color: rgba(var(--text-color), 0.1); + margin-bottom: 0.5rem; + } + sm-button { + margin: 0; + } + .flex { + padding: 0; + margin-top: 1rem; + sm-button:first-of-type { + margin-right: 0.6rem; + margin-left: auto; + } + } +} +#prompt_message { + margin-bottom: 1.5rem; } -#contact_popup{ - --body-padding: 0; -} -#contact_popup__initial{ - align-self: center; - width: 5rem; - height: 5rem; - padding: 1rem; - margin: 1rem 0; - font-size: 2rem; - border-radius: 50%; -} -#contact_popup__name{ - align-self: center; - font-weight: 700; - font-size: 1.2rem; -} -.contact__copy-row{ - padding: 0 1.5rem; - margin: 1rem 0; -} -.copy-label{ - font-weight: 500; - color: rgba(var(--text-color), 0.8); -} -.flo-id-grid{ - gap: 0.5rem; - grid-template-columns: 1fr auto; -} -#contact__flo_id{ -} -.copy-button{ - padding: 0.4rem; -} -#contact_popup__options{ - padding: 1rem 0; -} -.contact__option{ - font-size: 1rem; - padding: 0.8rem 1.5rem; - font-weight: 500; - color: rgba(var(--text-color), 0.8); -} -.button__icon{ - fill: rgba(var(--text-color), 0.7); -} -.button__title{ - margin-left: 1rem; +.popup__header { + display: grid; + gap: 0.5rem; + width: 100%; + padding: 0 1.5rem; + align-items: center; + grid-auto-flow: column; } +.popup__header__close { + padding: 0.5rem; + margin-left: -0.5rem; + cursor: pointer; +} -#main_card{ - height: 100%; - width: 100%; - grid-row: 1/3; +textarea { + color: inherit; + width: 100%; + font-size: 1em; + display: flex; + background-color: transparent; + padding: 1em; + border-radius: 0.3rem; + border: none; + font-family: inherit; + transition: box-shadow 0.2s; + outline: none; + caret-color: var(--accent-color, teal); + resize: none; + line-height: 1.6; } -#main_header{ - grid-area: header; - height: max-content; - gap: 0.2rem 1rem; - padding: 1rem; - grid-template-columns: auto 1fr; - grid-template-areas: 'logo company' 'logo app'; -} -#main_header__logo{ - width: 1.8rem; - height: 1.8rem; - grid-area: logo; -} -#page_container{ - grid-area: page; - overflow-y: hidden; -} -.page{ - position: relative; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - overflow-y: auto; - align-content: flex-start; -} -.header__company-name{ - grid-area: company; - font-weight: 500; - color: rgba(var(--text-color), 0.7); - align-self: flex-end; -} -.header__app-name{ +.textarea { + display: grid; + width: 100%; + align-self: flex-start; + position: relative; + border-radius: 0.3rem; + padding: 1rem 0.8rem; + background-color: rgba(var(--text-color), 0.06); + transition: box-shadow 0.2s; + & > * { + padding: 0; + grid-area: 1/1/2/2; + } + .label { align-self: flex-start; - line-height: 1; - grid-area: app; - font-weight: 700; - color: rgba(var(--text-color), 0.9); -} -#main_navbar{ - grid-area: nav; -} -.navbar__item{ - position: relative; - display: flex; - align-items: center; - padding: 0.8rem; - border-radius: 0.5rem; - &--active{ - .navbar__item__icon{ - fill: var(--accent-color); - } - .navbar__item__title{ - color: var(--accent-color); - } + pointer-events: none; + opacity: 0.6; + transition: transform 0.2s, color 0.2s; + user-select: none; + transform-origin: left; + will-change: transform; + } + &.label-active { + .label { + opacity: 1; + transform: translateY(-60%) scale(0.8); + color: var(--accent-color); } + textarea { + transform: translateY(0.5rem); + } + } + &:focus-within { + box-shadow: 0 0 0 0.1rem var(--accent-color) inset; + & > * { + box-shadow: none; + } + } } -.navbar__item__icon{ - margin-right: 1rem; - fill: rgba(var(--text-color), 0.7); -} -.navbar__item__title{ - font-size: 0.8rem; - font-weight: 500; - color: rgba(var(--text-color), 0.7); +#show_character_count { + font-size: 0.8rem; + margin-left: auto; } -.fab{ +#flo_data_status:not(:empty) { + color: red; + padding: 0.5rem 0; +} +#saved_ids_popup { + --height: 80vh; +} + +#main_header { + padding: 1rem 1.5rem; +} +#main_card { + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + background-color: rgba(var(--foreground-color), 1); + transition: background-color 0.3s; +} +#pages_container { + flex: 1; + overflow-y: auto; +} + +#main_navbar { + display: flex; + background: rgba(var(--text-color), 0.03); + &.hide-away { position: absolute; - display: inline-flex; - border-radius: 5rem; - aspect-ratio: 1/1; - padding: 0.7rem; - background: #FF1F1F; - box-shadow: 0 0.5rem 0.5rem rgba(0, 0, 0, 0.16); -} -.fab__icon{ - height: 1.8rem; - width: 1.8rem; - fill: white; -} -#flo_options{ - padding: 1rem; -} -.flo-options__item{ - padding: 0.8rem; - max-width: 6rem; - justify-content: center; - color: rgba(var(--text-color), 0.8); -} -.option__icon{ - height: 3rem; - width: 3rem; - padding: 0.8rem; - background: rgba(var(--text-color), 0.04); - border-radius: 1rem; -} -.coral{ - fill: #ff5e78; -} -.violet{ - fill: #845ec2; -} -.option__title{ - margin-top: 0.5rem; - font-weight: 500; -} - -#dashboard_page__header{ -} -#base_header{ - position: relative; - width: 100%; -} -.header__title{ - font-size: 1.1rem; - font-weight: 700; - color: rgba(var(--text-color), 0.8); -} - - - -#search_contacts__input{ - width: 100%; - --padding: 0.5rem; -} -#search_contacts_button{ - -} - -.search__icon{ - height: 1.2rem; - width: 1.2rem; -} - -.expanding-search{ - width: 14rem; -} -#selected_contact_options{ - -} -.contact-option{ - &:not(:last-of-type){ - margin-right: 0.5rem; - } - &:first-of-type{ - padding-right: 0.6rem; - margin-right: auto; - margin-left: -0.6rem; - } -} -.contact-option__button{ - display: inline-flex; - align-items: center; - border-radius: 0.3rem; - padding: 0.5rem 0.6rem; -} -.contact-option__icon{ - height: 1.2rem; - width: 1.2rem; - margin-right: 0.5rem; -} -.contact-option__name{ - font-weight: 500; - font-size: 0.9rem; - color: rgba(var(--text-color), 0.8); -} - -#contacts_container{ + } + ul { display: flex; - flex-direction: column; - max-height: 100%; + height: 100%; + width: 100%; + li { + width: 100%; + } + } +} +.nav-item { + position: relative; + display: flex; + flex: 1; + width: 100%; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 0.5rem 0.3rem; + color: var(--text-color); + font-size: 0.7rem; + border-radius: 0.3rem; + .icon { + transition: transform 0.2s; + } + &__title { + margin-top: 0.3rem; + transition: opacity 0.2s, transform 0.2s; + } + &--active { + color: var(--accent-color); + .icon { + fill: var(--accent-color); + transform: translateY(50%); + } + .nav-item__title { + transform: translateY(100%); + opacity: 0; + } + } + &__indicator { + position: absolute; + bottom: 0; + width: 2rem; + height: 0.3rem; + background: var(--accent-color); + border-radius: 1rem 1rem 0 0; + z-index: 1; + } +} + +#fix_invalid_button { + margin-bottom: 1rem !important; +} + +#get_private_key_field { + label { + display: flex; + input:checked ~ .visible { + display: none; + } + input:not(:checked) ~ .invisible { + display: none; + } + } +} +.multi-state-button { + display: grid; + text-align: center; + align-items: center; + & > * { + grid-area: 1/1/2/2; + } + button { + z-index: 1; + } +} +.clip { + clip-path: circle(0); +} + +#flo_id_warning { + padding-bottom: 1.5rem; + border-bottom: thin solid rgba(var(--text-color), 0.3); + .icon { + height: 4rem; + width: 4rem; + padding: 1rem; + background-color: #ffc107; + border-radius: 3rem; + fill: rgba(0, 0, 0, 0.8); + margin-bottom: 1.5rem; + } +} +.generated-id-card { + display: grid; + gap: 1rem; + h5 { + margin-bottom: 0.3rem; + } +} + +#home { + padding: 0; + & > :first-child { overflow-y: auto; align-content: flex-start; - padding: 0 0 6rem 1rem; + padding: 0.5rem 1.5rem 4rem 1.5rem; + } } -.contact-card{ +.primary-action { + display: flex; + padding: 0.8rem 1rem; + gap: 0.5rem; + white-space: normal; + font-size: 0.8rem; + border-radius: 0.5rem; + background-color: transparent; + border: thin solid rgba(var(--text-color), 0.3); + .icon { + fill: var(--accent-color); + } + &:not(:last-of-type) { + margin-right: 0.5rem; + } +} +#saved_ids_list { + position: relative; + align-content: flex-start; + padding-bottom: 1.5rem; + margin-top: 1rem; + gap: 1rem; + grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); +} +.saved-id { + grid-template-columns: auto 1fr; + gap: 0 0.8rem; + border-radius: 0.3rem; + padding: 0.5rem; + background-color: rgba(var(--text-color), 0.03); + user-select: none; + &.highlight { + box-shadow: 0 0 0.1rem 0.1rem var(--accent-color) inset; + } + .edit-saved { + grid-area: 1/1/3/2; + padding: 0.3rem; position: relative; - overflow: hidden; - display: grid; - width: 100%; - gap: 1rem; - grid-template-columns: auto auto 1fr auto; + .icon { + position: absolute; + height: 1.2rem; + width: 1.2rem; + right: 0; + bottom: 0; + border-radius: 0.5rem; + padding: 0.2rem; + background-color: rgba(var(--background-color), 1); + } + } + &__initial { + display: flex; align-items: center; - padding: 0.5rem 0.6rem; - flex-shrink: 0; - cursor: pointer; - user-select: none; - align-self: flex-start; justify-content: center; - border-radius: 0.3rem; - background: rgba(var(--foreground-color), 0.6); - -webkit-tap-highlight-color: transparent; + height: 2.4rem; + width: 2.4rem; + font-size: 1.2rem; + text-transform: uppercase; + color: rgba(var(--background-color), 1); + font-weight: 700; + line-height: 1; + background-color: var(--accent-color); + justify-self: flex-start; + border-radius: 2rem; + } + &__label { + align-self: flex-end; + } + &__flo-id { + font-size: 0.8rem; + } } -.contact-card__checkbox{ - --height: 1.5rem; - --width: 1.5rem; - --border-radius: 0.3rem; - --border-color: rgba(var(--text-color), 0.6); + +.page { + position: relative; + display: flex; + flex-direction: column; + overflow-y: auto; + align-content: flex-start; + padding: 0 1.5rem; + padding-bottom: 3rem; } -.contact-card__initial{ - width: 2rem; - height: 2rem; - padding: 1.2rem; - font-size: 1.1rem; - border-radius: 50%; + +#transactions { + position: relative; + height: 100%; + padding: 0; + header { + padding: 1rem; + .grid { + grid-template-columns: auto 1fr auto; + } + } } -.contact-card__name{ - font-weight: 500; - font-size: 1rem; +#flo_id_name { + overflow: hidden; + text-overflow: ellipsis; +} +#token_list { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} +.token-item { + font-size: 0.9rem; + padding: 0.5rem 1rem; + background-color: rgba(var(--text-color), 0.06); + border-radius: 0.3rem; +} +#transactions_list { + flex-direction: column; + padding-bottom: 4rem; +} +.transaction { + gap: 1rem; + padding: 1rem; + background-color: rgba(var(--text-color), 0.03); + border-radius: 0.3rem; + &:not(:last-of-type) { + margin-bottom: 1rem; + } + .icon { + fill: var(--accent-color); + } + &__time, + &__link, + &__receiver { + font-size: 0.8rem; + } + &__receiver { + margin-left: 0.5rem; color: rgba(var(--text-color), 0.8); + } + p { + font-size: 0.9rem; + max-width: unset; + } + &__time { + justify-self: flex-end; + color: rgba(var(--text-color), 0.8); + } } -.contact-card__more{ - padding: 0.4rem; +.fab { + position: absolute; + right: 0; + bottom: 0; + margin: 1.5rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2); + z-index: 2; } -#contacts_empty_state{ +#scroll_to_top { + border-radius: 3rem; + background-color: rgba(var(--foreground-color), 1); +} +#add_address_button { + border-radius: 0.5rem; + color: rgba(var(--background-color), 1); + background-color: var(--accent-color); + .icon { + fill: rgba(var(--background-color), 1); + } +} + +#transaction_result { + display: grid; + gap: 0.5rem; + height: max(40vh, 24rem); + align-items: center; + justify-content: center; + text-align: center; + align-content: center; + &.success { + .icon--failed { + display: none; + } + } + &.failed { + .icon--success { + display: none; + } + } + h3 { text-align: center; -} -.empty-state__title{ - font-weight: 400; - color: rgba(var(--text-color), 0.8); -} - -#show_contact_popup_button{ - right: 0; - bottom: 0; - margin: 1.5rem; -} - -.page__header{ - min-height: 4rem; - padding: 1rem; -} -.page__title{ - font-size: 1.1rem; -} - -#send_flo_form{ width: 100%; + } + .icon { + justify-self: center; + height: 4rem; + width: 4rem; + border-radius: 5rem; + margin-bottom: 1rem; + animation: popup 1s; + &--success { + fill: rgba(var(--background-color), 1); + padding: 1rem; + background-color: #0bbe56; + } + &--failed { + background-color: rgba(var(--text-color), 0.03); + fill: var(--danger-color); + } + } + sm-copy { + font-size: 0.8rem; + } +} +@keyframes popup { + 0% { + opacity: 0; + transform: scale(0.2) translateY(600%); + } + 10% { + transform: scale(0.2) translateY(5rem); + opacity: 1; + } + 40% { + transform: scale(0.2) translateY(0); + } + 80% { + transform: scale(1.1) translateY(0); + } + 100% { + transform: scale(1) translateY(0); + } +} + +#settings { +} + +@media screen and (max-width: 40rem) { + #main_navbar { + &.hide-away { + bottom: 0; + left: 0; + right: 0; + } + } +} +@media screen and (min-width: 40rem) { + body { + // background: url("back.png") no-repeat; + background-size: cover; + } + sm-popup { + --width: 24rem; + } + .popup__header { + grid-column: 1/-1; + padding: 1rem 1.5rem 0 1.5rem; + } + + body { + display: flex; + align-items: center; + justify-content: center; + } + + #main_card { + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: auto 1fr; + grid-template-areas: "nav header" "nav main"; + position: relative; + border-radius: 0.5rem; + overflow: hidden; + box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.05), + 0 1rem 3rem rgba(0, 0, 0, 0.2); + // backdrop-filter: blur(2rem); + background-color: rgba(var(--foreground-color), 0.9); + } + #main_header { + grid-area: header; + } + #pages_container { + grid-area: main; + } + + #main_navbar { + grid-area: nav; + border-top: none; + flex-direction: column; height: 100%; - padding: 0 1rem; - gap: 0.3; + ul { + flex-direction: column; + gap: 0.5rem; + padding: 0.3rem; + + li:last-of-type { + margin-top: auto; + } + } + } + .nav-item { + aspect-ratio: 1/1; + &__indicator { + width: 0.25rem; + height: 50%; + left: 0; + border-radius: 0 1rem 1rem 0; + bottom: auto; + } + } + #create_flo_id_popup { + --width: 28rem; + } + #send { + sm-form::part(form) { + align-items: flex-start; + grid-template-columns: 45% 1fr; + } + } } -.form__section{ - align-content: flex-start; +@media screen and (min-width: 56rem) { + #main_card { + height: 80vh; + width: 56rem; + } } -.label{ - font-size: 0.9rem; - margin-bottom: 0.3rem; - color: rgba(var(--text-color), 0.9); - &:not(:first-of-type){ - margin-top: 0.8rem; +@media (any-hover: hover) { + ::-webkit-scrollbar { + width: 0.5rem; + height: 0.5rem; + } + + ::-webkit-scrollbar-thumb { + background: rgba(var(--text-color), 0.3); + border-radius: 1rem; + + &:hover { + background: rgba(var(--text-color), 0.5); } -} -#sent_flo_data{ - --max-height: 12rem; -} -#send_flo_button{ - margin-top: 1.5rem; + } + .interact:not([disabled]) { + transition: background-color 0.3s; + &:hover { + background-color: rgba(var(--text-color), 0.06); + } + } + .button:not([disabled]) { + transition: background-color 0.3s, filter 0.3s; + &:hover { + filter: contrast(2); + } + } } - - -#balance_card{ - width: 100%; - padding: 1rem; - margin-bottom: 1rem; - border-radius: 0.3rem; - background-color: rgba(var(--text-color), 0.04); -} -#balance_card__input{ - margin-bottom: 1rem; -} -.balance_card__title{ - font-size: 1rem; - font-weight: 500; - margin-bottom: 0.5rem; - color: rgba(var(--text-color), 0.8); -} -.balance_card__description{ - font-size: 0.9rem; - margin-bottom: 0.5rem; - color: rgba(var(--text-color), 0.8); -} -#flo_balance{ - word-break: break-all; - font-size: 2rem; - margin-bottom: 1rem; +@supports (overflow: overlay) { + body { + overflow: overlay; + } } - - -.settings__section{ - padding: 0 1rem; - width: min(50ch, 100%); - &:not(:last-of-type){ - margin-bottom: 1rem; - } +.hide { + display: none !important; } -.setting__title{ - color: rgba(var(--text-color), 0.9); -} -.setting__description{ - font-size: 0.9rem; - color: rgba(var(--text-color), 0.8); -} -.toggle-grid{ - gap: 0.3rem; - margin-right: 1rem; -} - - -// mobile only styles -@media all and (max-width: 640px){ - .hide-on-mobile{ - display: none; - } - #main_card{ - min-height: 100%; - grid-template-rows: auto 1fr auto; - grid-template-areas: 'header' 'page' 'nav'; - } - #main_navbar{ - flex-direction: row; - } - .navbar__item{ - flex: 1; - flex-direction: column; - } - .navbar__item__icon{ - margin: 0 0 0.5rem 0; - } - .navbar__item__icon{ - margin: 0 0 0.5rem 0; - } - #dashboard_page__header{ - padding-top: 0; - } - .expanding-search{ - background-color: rgba(var(--foreground-color), 1); - position: absolute; - z-index: 1; - width: 100%; - } - .back-button{ - - } -} - -// desktop only styles -@media all and (min-width: 640px){ - body{ - align-items: center; - justify-content: center; - #main_card{ - background: rgba(var(--foreground-color), 1); - } - } - body[data-theme='dark']{ - #main_card{ - background: rgba(var(--text-color), 0.04); - } - } - sm-popup{ - --width: 24rem; - } - .hide-on-desktop{ - display: none; - } - .popup__header{ - padding: 1rem 1.5rem 0 1rem; - } - #main_card{ - position: relative; - width: 80vw; - height: 80vh; - border-radius: 0.2rem; - overflow: hidden; - grid-template-columns: 15rem 1fr; - grid-template-rows: auto 1fr; - grid-template-areas: 'header page' 'nav page'; - box-shadow: 0 1.5rem 1.5rem rgba(0, 0, 0, 0.16); - } - #main_header{ - padding: 1.5rem; - } - #main_navbar{ - flex-direction: column; - height: 100%; - padding: 0 1rem; - align-content: flex-start; - } - .navbar__item__title{ - font-size: 0.9rem; - } - #page_container{ - position: relative; - grid-row: 1/3; - &::after{ - content: ''; - position: absolute; - left: 0; - height: 65%; - width: 1px; - background: rgba(var(--text-color), 0.2); - top: 50%; - transform: translateY(-50%); - } - } - .page__header{ - min-height: 6.2rem; - padding: 1.5rem; - } - #contacts_container{ - padding: 0 1rem 8rem 1.5rem; - } - #send_flo_form{ - gap: 1rem; - grid-template-columns: 1fr 1fr; - padding: 0 1.5rem 1.5rem 1.5rem; - } - .settings__section{ - padding: 0 1.5rem; - } -} -@media all and (min-width: 1080px){ - -} -@media all and (min-width: 1280px){ - #main_card{ - width: 65vw; - height: 85vh; - } -} -@media all and (min-width: 1920px){ - #main_card{ - width: 60vw; - height: 65vh; - } -} -@media (any-hover: hover){ - ::-webkit-scrollbar{ - width: 0.5rem; - height: 0.5rem; - } - - ::-webkit-scrollbar-thumb{ - background: rgba(var(--text-color), 0.3); - border-radius: 1rem; - &:hover{ - background: rgba(var(--text-color), 0.5); - } - } - .contact-card__checkbox:not([checked]):not(:focus-within){ - opacity: 0.4; - transition: opacity 0.3s; - } - .contact-card__more:not(:focus-within){ - opacity: 0; - transition: opacity 0.3s; - } - .contact-card:hover .contact-card__checkbox, - .contact-card:hover .contact-card__more{ - opacity: 1; - } - .contact-option__button{ - transition: background 0.3s; - &:hover{ - background-color: rgba(var(--text-color), 0.1); - } - } -} \ No newline at end of file diff --git a/index.html b/index.html index 4d37813..5310cbd 100644 --- a/index.html +++ b/index.html @@ -2,1792 +2,15 @@ - FLO web wallet + FLO Web Wallet - + + + + - -
-
- There seems to be a problem connecting to the internet. + + + +

+

+
+ Cancel + OK
-
- -
-
-