mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-18 00:55:54 +00:00
* Split demo site into its own package Move the demo site from packages/webamp/demo/ into packages/webamp-demo/ as a standalone workspace package. This cleanly separates the library (published to npm) from the demo site (deployed to webamp.org). Key changes: - Demo imports webamp source via relative paths (no aliases needed) - Demo has its own package.json with demo-specific deps - Simplified vite config (just nodePolyfills plugin) - Removed vite branching from rollupPlugins.mjs (library-only now) - Renamed build-library -> build in webamp package - Updated turbo.json, CI, netlify config, and code-size workflow - Removed demo-only deps from webamp package (sentry, butterchurn stays for the butterchurn bundle) - Zero bundle size change for the library Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix: add type-check dependency to webamp#build task The webamp-docs package needs type declarations from webamp to type-check. These are generated by tsc (type-check), which must run before the build task. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add updated readme to webamp-demo package Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Document the live reloading dev flow in both readmes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix code-size CI: use deploy script that exists on both branches The compressed-size-action checks out master and runs the build script. Master doesn't have a root "build" script, so revert to using "deploy" which exists on both branches. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
186 lines
3.1 KiB
CSS
186 lines
3.1 KiB
CSS
/* Rules for the page layout */
|
|
body {
|
|
background-color: rgb(58, 110, 165);
|
|
font-family: arial;
|
|
font-size: 15px;
|
|
}
|
|
|
|
::selection {
|
|
background: none;
|
|
}
|
|
|
|
#browser-compatibility {
|
|
display: none;
|
|
position: absolute;
|
|
width: 275px;
|
|
margin-top: -58px;
|
|
margin-left: -137px;
|
|
top: 40%;
|
|
left: 50%;
|
|
background: white;
|
|
text-align: center;
|
|
}
|
|
|
|
.about {
|
|
position: fixed;
|
|
bottom: 0;
|
|
right: 0;
|
|
color: white;
|
|
/* Let users drag windows over this text */
|
|
z-index: -1;
|
|
margin: 0;
|
|
display: none;
|
|
flex-direction: row;
|
|
}
|
|
|
|
@media all and (display-mode: fullscreen) {
|
|
.about {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.about.loaded {
|
|
display: flex;
|
|
}
|
|
|
|
.about a {
|
|
display: flex;
|
|
}
|
|
|
|
.about a svg {
|
|
margin: 10px 13px;
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: #fff;
|
|
transition: 0.25s ease-out;
|
|
}
|
|
|
|
/* TODO: Ideally this would be a border not a :before */
|
|
.about a:before {
|
|
position: absolute;
|
|
top: 0;
|
|
content: "";
|
|
width: 42px; /* TODO: This should be derived not hard coded */
|
|
height: 2px;
|
|
background-color: rgba(255, 255, 255, 0);
|
|
transition: 0.25s ease-out;
|
|
}
|
|
|
|
.about a:hover:before {
|
|
background-color: rgba(255, 255, 255, 255);
|
|
transition: 0.25s ease-out;
|
|
}
|
|
|
|
.about a:hover svg {
|
|
transition: 0.25s ease-out;
|
|
transform: scale(1.35);
|
|
}
|
|
|
|
#github-share {
|
|
background-color: #2d3238;
|
|
}
|
|
|
|
#music-credits {
|
|
background-color: rgb(89, 141, 197);
|
|
}
|
|
|
|
#butterchurn-share {
|
|
display: none; /* Button is only shown if the window gets enabled */
|
|
background-size: 100%; /* Image is 2x size for retina displays */
|
|
background-size: 100%; /* Image is 2x size for retina displays */
|
|
}
|
|
|
|
#app {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
z-index: -2; /* Place this below the about buttons */
|
|
}
|
|
|
|
#app #loading {
|
|
color: white;
|
|
text-align: center;
|
|
font-size: 40px;
|
|
height: 30px;
|
|
position: absolute;
|
|
margin: auto;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
}
|
|
|
|
#app #loading .ellipsis-anim span {
|
|
opacity: 0;
|
|
-webkit-animation: ellipsis-dot 1s infinite;
|
|
animation: ellipsis-dot 1s infinite;
|
|
}
|
|
|
|
#app #loading .ellipsis-anim span:nth-child(1) {
|
|
-webkit-animation-delay: 0s;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
#app #loading .ellipsis-anim span:nth-child(2) {
|
|
-webkit-animation-delay: 0.1s;
|
|
animation-delay: 0.1s;
|
|
}
|
|
|
|
#app #loading .ellipsis-anim span:nth-child(3) {
|
|
-webkit-animation-delay: 0.2s;
|
|
animation-delay: 0.2s;
|
|
}
|
|
|
|
@-webkit-keyframes ellipsis-dot {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes ellipsis-dot {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
.desktop-icon {
|
|
text-align: center;
|
|
cursor: pointer;
|
|
image-rendering: pixelated;
|
|
}
|
|
|
|
.desktop-icon-title {
|
|
color: white;
|
|
font-family: "MS Sans Serif", "Segoe UI", sans-serif;
|
|
font-size: 11px;
|
|
-webkit-font-smoothing: none;
|
|
margin-top: 5px;
|
|
width: 100%;
|
|
border: 1px dotted transparent;
|
|
text-overflow: ellipsis;
|
|
word-wrap: break-word;
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
.desktop-icon.selected .desktop-icon-title {
|
|
background-color: #000080;
|
|
border-color: white;
|
|
}
|
|
|
|
.desktop-icon.selected img {
|
|
filter: brightness(0.35) sepia(100%) hue-rotate(148deg) saturate(10);
|
|
}
|