/* Box sizing */ html { box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; } /* Constants */ :root { --color-active: #F3E87F; --color-header: #333333; --color-action: #333333; --color-action-darker: #222222; --color-prepare: #3B6EDC; --color-pause: #888888; --color-work: #71b571; --color-rest: #B15B5B; --color-timer-arc-total: #222222; --color-timer-hover: #DDEEDD; --base-font-size: 18px; } @media all and (max-width: 800px) { :root { --base-font-size: 14px; } } /* Layout */ html { font-size: var(--base-font-size); } body { margin: 0; } .g-Layout__Page { height: 100vh; overflow-y: auto; } .g-Layout__Header { background-color: var(--color-header); color: white; padding: 1rem 2rem; font-size: 2rem; } /* Animation */ .g-Animation { position: relative; overflow: hidden; } .g-Animation > * + * { width: 100vw; min-height: 100vh; position: absolute; left: 100vh; top: 0; animation: g-Animation__Keyframe 400ms; } @keyframes g-Animation__Keyframe { from { left: 100vh; } to { left: 0; } } /* Config */ .g-Form { display: flex; flex-direction: column; align-items: center; padding-top: 5rem; background-color: white; } .g-Form__Label { display: flex; flex-direction: column; align-items: center; margin-bottom: 1rem; text-align: center; font-size: 1.3rem; } .g-Form__Input { display: block; text-align: center; margin-top: 0.5rem; font-size: 1.3rem; width: 10rem; } .g-Form__Duration { text-align: center; font-size: 1.5rem; margin-top: 1rem; } .g-Form__Start { font-size: 1.5rem; background-color: var(--color-action); border: 3px solid var(--color-action-darker); color: white; padding: 0.5rem 0.8rem; width: 10rem; margin-top: 2rem; cursor: pointer; } /* Timer */ .g-Timer { display: grid; grid-template-columns: 10% auto 10%; grid-template-rows: 10% auto 10% 10% 10%; color: white; } .g-Timer--Work { background-color: var(--color-work); } .g-Timer--Rest { background-color: var(--color-rest); } .g-Timer--Prepare { background-color: var(--color-prepare); } .g-Timer__Pause { background-color: var(--color-pause); } .g-Timer__Dial { display: flex; align-items: center; justify-content: center; flex-direction: column; width: 100%; height: 100%; grid-row: 2; grid-column: 2; background-color: transparent; color: inherit; font-size: 3rem; position: relative; border: none; } .g-Timer__Arc { width: inherit; height: inherit; position: absolute; top: 0; left: 0; } .g-Timer__ArcTotal { stroke: var(--color-timer-arc-total); fill: none; stroke-width: 20; } .g-Timer__ArcPrepare { stroke: var(--color-prepare); fill: none; stroke-width: 18; } .g-Timer__ArcWork { stroke: var(--color-work); fill: none; stroke-width: 18; } .g-Timer__ArcRest { stroke: var(--color-rest); fill: none; stroke-width: 18; } .g-Timer__ArcProgress { stroke: var(--color-active); fill: none; stroke-width: 18; } .g-Timer__Step { margin-bottom: 2rem; } .g-Timer__Buttons { display: flex; justify-content: space-around; grid-row: 4; grid-column: 2; width: 100%; height: 100%; } .g-Timer__Button { display: flex; justify-content: center; align-items: center; font-size: 1.5rem; background-color: var(--color-action); border: 3px solid var(--color-action-darker); color: white; padding: 0.5rem 0.8rem; width: 10rem; cursor: pointer; text-align: center; text-decoration: none; } .g-Timer__Button:not(:last-child) { margin-right: 2rem; } .g-Timer__Button--Active { background-color: var(--color-active); color: black; }