UNPKG

@robotical/sensors-dashboard

Version:

A dashboard tool for depicting Marty data by Robotical

391 lines (335 loc) 7.9 kB
.mainContent { position: relative; display: flex; flex-direction: column; gap: 1.6rem; padding: 0 0 2.4rem; } .graphsToolbar { position: sticky; top: 0; z-index: 12; display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 7.2rem; padding: 1.2rem 1.6rem; background: rgba(255, 255, 255, 0.94); border: 0.1rem solid var(--colour-BLUE_LIGHT_3); border-radius: 1.8rem; box-shadow: 0 1rem 2.8rem rgba(38, 38, 38, 0.07); backdrop-filter: blur(1rem); } .graphsToolbar h2 { font-size: 2.4rem; line-height: 1.1; } .graphsToolbar > div > p:last-child { margin-top: 0.25rem; color: var(--colour-BLACK_075); font-size: 1.35rem; } .toolbarEyebrow { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 0.35rem; color: var(--colour-success-strong); font-size: 1.15rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; } .graphsArea { display: flex; flex-direction: column; gap: 1.6rem; width: 100%; } .addGraphBtn, .connectButton { min-height: 4.6rem; display: inline-flex; align-items: center; justify-content: center; gap: 1rem; padding: 1rem 1.8rem; background: var(--colour-primary-strong); border: 0.2rem solid transparent; border-radius: 999px; color: var(--colour-TRUE_WHITE); cursor: pointer; font-size: 1.5rem; font-weight: 800; box-shadow: 0 1rem 2.2rem rgba(11, 111, 135, 0.22); transition: background-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease; } .toolbarActions, .connectActions { display: flex; align-items: center; flex-wrap: wrap; gap: 0.8rem; } .toolbarActions { justify-content: flex-end; } .deviceActionButton { min-height: 4.6rem; display: inline-flex; align-items: center; justify-content: center; gap: 0.8rem; padding: 0.9rem 1.4rem; border: 0.2rem solid var(--colour-primary-strong); border-radius: 999px; background: var(--colour-TRUE_WHITE); color: var(--colour-primary-deep); cursor: pointer; font-size: 1.35rem; font-weight: 800; } .deviceActionButton:hover { background: var(--colour-BLUE_LIGHT_1); } .deviceActionButton:focus-visible { outline: 0.3rem solid var(--focus-ring); outline-offset: 0.3rem; } .deviceActionButton:disabled { cursor: not-allowed; opacity: 0.55; } .microBitButtonIcon { width: 2.4rem; height: 2.4rem; flex: 0 0 auto; } .addGraphBtn:hover, .connectButton:hover { background-color: var(--colour-primary-deep); transform: translateY(-0.1rem); box-shadow: 0 1.2rem 2.6rem rgba(6, 75, 93, 0.25); } .addGraphBtn:focus-visible, .connectButton:focus-visible { outline: 0.3rem solid var(--focus-ring); outline-offset: 0.3rem; } .connectButton:disabled { cursor: progress; opacity: 0.72; transform: none; } .connectEmptyState { width: min(100%, 104rem); margin: 2rem auto; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(28rem, 0.75fr); gap: 1.6rem; } .connectEmptyHero { padding: clamp(2.4rem, 5vw, 4.8rem); background: var(--colour-TRUE_WHITE); border: 0.1rem solid var(--colour-BLUE_LIGHT_3); border-radius: 2.4rem; box-shadow: 0 2rem 5rem rgba(38, 38, 38, 0.08); } .emptyStateIcon { width: 5.6rem; height: 5.6rem; display: grid; place-items: center; margin-bottom: 1.8rem; background: var(--colour-BLUE_LIGHT_1); border: 0.1rem solid var(--colour-BLUE_LIGHT_3); border-radius: 1.8rem; color: var(--colour-primary-strong); font-size: 2.5rem; } .emptyStateEyebrow { color: var(--colour-primary-strong); font-size: 1.2rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; } .connectEmptyHero h2 { max-width: 58rem; margin-top: 0.7rem; font-size: clamp(2.8rem, 4vw, 4.4rem); line-height: 1.08; } .emptyStateDescription { max-width: 60rem; margin-top: 1.2rem; color: var(--colour-BLACK_075); font-size: 1.7rem; } .connectActions { margin-top: 2.4rem; } .connectActions .connectButton { margin-top: 0; } .secondaryButton { border-color: var(--colour-primary-strong); background: var(--colour-TRUE_WHITE); color: var(--colour-primary-deep); box-shadow: none; } .secondaryButton:hover { background: var(--colour-BLUE_LIGHT_1); color: var(--colour-primary-deep); box-shadow: none; } .connectionFeedback { min-height: 2.1rem; margin-top: 1.2rem; color: var(--colour-BLACK_075); font-size: 1.35rem; } .connectionError { color: #a22525; font-weight: 700; } .toolbarFeedback { margin: -0.8rem 0 0; color: var(--colour-BLACK_075); font-size: 1.3rem; } .toolbarFeedback.connectionError { color: #a22525; } .quickJourney { list-style: none; display: grid; align-content: center; gap: 1.2rem; padding: 2rem; background: rgba(214, 243, 246, 0.74); border: 0.1rem solid var(--colour-BLUE_LIGHT_3); border-radius: 2.4rem; } .quickJourney li { display: grid; grid-template-columns: 4.4rem 1fr; align-items: center; gap: 1.2rem; min-height: 6.4rem; padding: 1rem; background: rgba(255, 255, 255, 0.78); border-radius: 1.4rem; } .quickJourney li > span { width: 4.4rem; height: 4.4rem; display: grid; place-items: center; background: var(--colour-primary-strong); border-radius: 50%; color: var(--colour-TRUE_WHITE); font-weight: 800; } .quickJourney strong, .quickJourney small { display: block; } .quickJourney strong { font-size: 1.5rem; } .quickJourney small { margin-top: 0.15rem; color: var(--colour-BLACK_075); font-size: 1.3rem; } .addNewGraphMessage { width: min(100%, 76rem); margin: 2.4rem auto; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1.8rem; padding: 2.4rem; background: rgba(255, 255, 255, 0.86); border: 0.1rem dashed var(--colour-primary); border-radius: 2rem; color: var(--colour-BLACK); } .addNewGraphMessage > svg { width: 5.2rem; height: 5.2rem; padding: 1.3rem; background: var(--colour-BLUE_LIGHT_1); border-radius: 1.6rem; color: var(--colour-primary-strong); } .addNewGraphMessage h3 { margin-top: 0.4rem; font-size: 2.2rem; } .addNewGraphMessage div > p:last-child { margin-top: 0.5rem; color: var(--colour-BLACK_075); font-size: 1.5rem; } @media (max-width: 900px) { .connectEmptyState { grid-template-columns: 1fr; } .quickJourney { grid-template-columns: repeat(3, 1fr); align-items: stretch; } .quickJourney li { grid-template-columns: 1fr; align-content: start; } } @media (max-width: 640px) { .graphsToolbar { position: static; align-items: stretch; flex-direction: column; border-radius: 1.6rem; } .addGraphBtn { width: 100%; } .toolbarActions { align-items: stretch; flex-direction: column; width: 100%; } .deviceActionButton { width: 100%; } .connectEmptyState { margin-top: 0; } .connectEmptyHero, .quickJourney { border-radius: 1.8rem; } .connectButton { width: 100%; } .connectActions { align-items: stretch; flex-direction: column; } .quickJourney { grid-template-columns: 1fr; } .quickJourney li { grid-template-columns: 4.4rem 1fr; } .addNewGraphMessage { grid-template-columns: 1fr; text-align: center; } .addNewGraphMessage > svg { justify-self: center; } }