/* Constants */ :root { --color-block: #e3e3e3; --color-block-checked: #90ee90; --color-block-unchecked-beat: #fff7bf; --spacing-mouse: 0.25rem; --spacing-cat: 0.5rem; --spacing-dog: 1rem; --spacing-horse: 2rem; --spacing-elephant: 4rem; } /* Reset */ ol { list-style-type: none; margin: 0; padding: 0; } /* Styles */ body { margin: var(--spacing-dog); font-family: sans-serif; } .g-Bpm { display: block; margin-bottom: var(--spacing-dog); } .g-Input { margin-left: var(--spacing-dog); } .g-PlayStop { margin-bottom: var(--spacing-dog); } .g-Sequencer { margin-top: var(--spacing-dog); } .g-Sequencer__Buttons { margin-bottom: var(--spacing-dog); display: flex; gap: var(--spacing-dog); } .g-Sequencer__Grid { display: flex; gap: var(--spacing-cat); } .g-Sequencer__Blocks { display: flex; align-items: center; gap: var(--spacing-mouse); } .g-Sequencer__Column { display: flex; flex-direction: column; gap: var(--spacing-mouse); } .g-Sequencer__Column > li { display: flex; align-items: center; height: var(--spacing-horse); cursor: pointer; padding: var(--spacing-mouse); } .g-Sequencer__Block { width: var(--spacing-horse); height: var(--spacing-horse); background-color: var(--color-block); cursor: pointer; } .g-Sequencer__Block:hover { filter: brightness(105%); } .g-Sequencer__Block--Checked { background-color: var(--color-block-checked); } .g-Sequencer__Column--Beat { background-color: var(--color-block-unchecked-beat); box-shadow: 0px 0px 5px 1px var(--color-block-unchecked-beat); } .g-Sequencer__Column--Beat .g-Sequencer__Block--Checked { animation: checked-beat 0.2s linear; } @keyframes checked-beat { 0% {transform: scale(100%);} 30% {transform: scale(115%);} 100% {transform: scale(100%);} }