spin-wheel
Version:
An easy to use, themeable component for randomising choices and prizes.
153 lines (128 loc) • 2.71 kB
CSS
* {
margin: 0;
padding: 0;
font-family: 'Lucida Grande', sans-serif;
-webkit-tap-highlight-color: transparent;
user-select: none; /* Prevent selecting ui text when dragging */
}
html, body {
height: 100%;
}
body {
/* Prevent pull-down-to-refresh gesture */
overscroll-behavior-y: contain;
/* Prevent iOS rubber-band effect */
position: fixed;
width: 100%;
/* Prevent browser from handling touch events */
touch-action: none;
display: grid;
grid-template-columns: 1fr min-content;
justify-items: stretch;
align-items: stretch;
font-size: 0.95em;
--padding: 12px;
}
.frame-center {
position: relative;
display: grid;
}
.wheel-wrapper {
/* Hide UI during page load */
visibility: hidden;
overflow: hidden; /* Prevent grid blowout */
}
.frame-right {
background-color: #f0f0ee;
display: flex;
flex-direction: column;
gap: var(--padding);
overflow-y: scroll;
border-left: solid 1px #5c5c5c;
padding-bottom: 15px;
}
button.btn, label.btn {
padding: 4px 8px;
margin: 0px;
font-family: inherit;
font-size: inherit;
display: inline-block;
cursor: pointer;
background-color: white;
border: solid 1px #767676;
border-radius: 4px;
align-self: flex-start;
}
.input-group {
display: flex;
flex-direction: column;
gap: calc(var(--padding) * 0.7);
padding: 0 var(--padding);
border-top: solid 1px #5c5c5c;
}
.input-group h2 {
font-size: 1.1em;
display: flex;
font-family: monospace;
/* background-color: #dfdfdb; */
padding: var(--padding) 0px 0px;
font-weight: normal;
white-space: nowrap;
}
.input-group h2 span:first-of-type {
display: inline-block;
font-family: inherit;
user-select: text;
}
.input-group h2 span:last-of-type {
margin-left:7px;
font-family: inherit;
width: 40px; /* fixed width so the panel can be auto sized */
user-select: text;
}
.input-group input[type="range"] {
cursor: pointer;
}
.input-group input[type="checkbox"] {
height: 22px;
width: 22px;
cursor: pointer;
}
.input-group input[type="file"] {
display: none;
}
.input-group input[type="input"] {
padding: 4px 8px;
font-family: inherit;
background-color: white;
border: solid 1px #767676;
border-radius: 4px;
}
.input-group button {
margin-top: var(--padding);
}
select {
padding: 2px;
}
label {
margin-right: 5px;
}
.toolbar {
position: absolute;
top: 0;
right: 0;
left: 0;
padding: var(--padding);
text-align: right;
}
.btn.clear {
display: none;
}
/*************************************************/
/*************************************************/
@media only screen and (max-width: 450px) {
body {
font-size: .85em;
--padding: 10px;
}
}