diff mrjunejune/src/tools/hls_player/index.css @ 242:543df0fe7168

[tools] Add full HLS player support
author MrJuneJune <me@mrjunejune.com>
date Mon, 03 Aug 2026 13:14:41 -0700
parents
children 30c2196d03d4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mrjunejune/src/tools/hls_player/index.css	Mon Aug 03 13:14:41 2026 -0700
@@ -0,0 +1,171 @@
+.hls-form {
+  margin: 1.5rem 0;
+}
+
+.hls-form label {
+  display: block;
+  margin-bottom: 0.4rem;
+  font-weight: 700;
+}
+
+.hls-url-row {
+  display: grid;
+  grid-template-columns: minmax(0, 1fr) auto auto;
+  gap: 0.6rem;
+}
+
+.hls-url-row input,
+.hls-url-row button {
+  min-height: 44px;
+  font: inherit;
+}
+
+.hls-url-row input {
+  width: 100%;
+  padding: 0.65rem 0.8rem;
+  color: rgb(var(--gray-dark));
+  background: var(--white);
+  border: 1px solid var(--darkgray);
+  border-radius: 6px;
+}
+
+.hls-url-row button {
+  padding: 0.65rem 1rem;
+  color: var(--white);
+  background: var(--darkgray);
+  border: 1px solid var(--darkgray);
+  border-radius: 6px;
+  cursor: pointer;
+}
+
+.hls-url-row button:hover,
+.hls-url-row button:focus-visible {
+  color: var(--white);
+  background: var(--awesome);
+  border-color: var(--awesome);
+}
+
+.hls-player-shell {
+  overflow: hidden;
+  border: 1px solid var(--darkgray);
+  border-radius: 8px;
+  background: #10131a;
+}
+
+.hls-local-picker {
+  margin: 1rem 0 1.5rem;
+  padding: 0.9rem;
+  border: 1px solid var(--gray-light);
+  border-radius: 8px;
+}
+
+.hls-local-picker legend {
+  padding: 0 0.4rem;
+  font-weight: 700;
+}
+
+.hls-local-picker p {
+  margin: 0 0 0.75rem;
+}
+
+.hls-local-actions {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 0.65rem;
+}
+
+.hls-file-button {
+  display: inline-flex;
+  align-items: center;
+  min-height: 44px;
+  padding: 0.65rem 1rem;
+  color: var(--white);
+  background: var(--darkgray);
+  border-radius: 6px;
+  cursor: pointer;
+}
+
+.hls-file-button:hover,
+.hls-file-button:focus-within {
+  background: var(--awesome);
+}
+
+.hls-file-button input {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  clip: rect(0 0 0 0);
+  white-space: nowrap;
+}
+
+#hlsVideo {
+  display: block;
+  width: 100%;
+  aspect-ratio: 16 / 9;
+  background: #05070b;
+}
+
+.hls-status {
+  min-height: 2.75rem;
+  margin: 0;
+  padding: 0.65rem 0.9rem;
+  color: #f3f5f8;
+  background: #171b24;
+}
+
+.hls-status[data-state="error"] {
+  color: #ffd7df;
+  background: #6d1732;
+}
+
+.hls-status[data-state="ready"] {
+  color: #d8ffe9;
+  background: #185b3a;
+}
+
+.hls-details {
+  display: grid;
+  grid-template-columns: repeat(4, minmax(0, 1fr));
+  gap: 0.75rem;
+  margin: 1rem 0;
+}
+
+.hls-details[hidden] {
+  display: none;
+}
+
+.hls-details div {
+  padding: 0.7rem;
+  border: 1px solid var(--gray-light);
+  border-radius: 6px;
+}
+
+.hls-details dt {
+  font-size: 0.8rem;
+  font-weight: 700;
+  text-transform: uppercase;
+}
+
+.hls-details dd {
+  margin: 0.25rem 0 0;
+  overflow-wrap: anywhere;
+}
+
+.hls-notes {
+  margin-top: 1.5rem;
+}
+
+@media (max-width: 720px) {
+  .hls-url-row {
+    grid-template-columns: 1fr 1fr;
+  }
+
+  .hls-url-row input {
+    grid-column: 1 / -1;
+  }
+
+  .hls-details {
+    grid-template-columns: 1fr 1fr;
+  }
+}