diff --git a/index.html b/index.html index 71a55be..0b31d1e 100644 --- a/index.html +++ b/index.html @@ -6,31 +6,55 @@ RSS Reader - Screenly Edge App - + -
+
-

+

-
+
- diff --git a/package.json b/package.json index 945e4b7..5e15097 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "devDependencies": { "@playwright/test": "^1.58.0", - "@screenly/edge-apps": "^1.0.0", + "@screenly/edge-apps": "^1.3.0", "@types/bun": "^1.3.13", "@types/jsdom": "^28.0.1", "bun-types": "^1.3.13", diff --git a/screenshots/1080x1920.webp b/screenshots/1080x1920.webp index da7626d..e8f5ebd 100644 Binary files a/screenshots/1080x1920.webp and b/screenshots/1080x1920.webp differ diff --git a/screenshots/1280x720.webp b/screenshots/1280x720.webp index ff06757..2efaecb 100644 Binary files a/screenshots/1280x720.webp and b/screenshots/1280x720.webp differ diff --git a/screenshots/1920x1080.webp b/screenshots/1920x1080.webp index 5b4827c..8fa14c9 100644 Binary files a/screenshots/1920x1080.webp and b/screenshots/1920x1080.webp differ diff --git a/screenshots/2160x3840.webp b/screenshots/2160x3840.webp index 4039dc9..50c1549 100644 Binary files a/screenshots/2160x3840.webp and b/screenshots/2160x3840.webp differ diff --git a/screenshots/2160x4096.webp b/screenshots/2160x4096.webp index ea73596..50796be 100644 Binary files a/screenshots/2160x4096.webp and b/screenshots/2160x4096.webp differ diff --git a/screenshots/3840x2160.webp b/screenshots/3840x2160.webp index 26d1dfb..8817d55 100644 Binary files a/screenshots/3840x2160.webp and b/screenshots/3840x2160.webp differ diff --git a/screenshots/4096x2160.webp b/screenshots/4096x2160.webp index 7beb87c..f6c24b3 100644 Binary files a/screenshots/4096x2160.webp and b/screenshots/4096x2160.webp differ diff --git a/screenshots/480x800.webp b/screenshots/480x800.webp index 6a64bb8..2e5e937 100644 Binary files a/screenshots/480x800.webp and b/screenshots/480x800.webp differ diff --git a/screenshots/720x1280.webp b/screenshots/720x1280.webp index 4df9c95..5282dd3 100644 Binary files a/screenshots/720x1280.webp and b/screenshots/720x1280.webp differ diff --git a/screenshots/800x480.webp b/screenshots/800x480.webp index d91d4fc..9502360 100644 Binary files a/screenshots/800x480.webp and b/screenshots/800x480.webp differ diff --git a/src/css/style.css b/src/css/style.css index e8e83ff..1092a3d 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -1,221 +1,12 @@ -@import '@screenly/edge-apps/styles'; - -:root { - --card-bg: - linear-gradient(90deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.4) 100%), - linear-gradient( - 142deg, - rgba(255, 255, 255, 0.08) 0%, - rgba(255, 255, 255, 0.02) 100% - ); - --card-border: rgba(255, 255, 255, 0.1); - --card-radius: 1.667rem; - --card-padding: 1.5rem; - --card-gap: 1.25rem; - --grid-gap: 1.25rem; - --text-primary: #ffffff; - --text-muted: rgba(255, 255, 255, 0.8); -} - -* { - box-sizing: border-box; -} - -#feed-grid[hidden], -#feed-error[hidden] { - display: none; -} - -body { - margin: 0; - padding: 0; - overflow: hidden; - color: var(--text-primary); - font-family: 'Inter', system-ui, sans-serif; - background: url('/static/images/bg.webp') no-repeat center center; - background-size: cover; -} - -body::before { - content: ''; - position: fixed; - inset: 0; - z-index: var(--z-index-backdrop); - pointer-events: none; - background: rgba(0, 0, 0, 0.2); - backdrop-filter: blur(3px); -} - -auto-scaler { - position: relative; - z-index: var(--z-index-content); -} - -#app { - display: flex; - flex-direction: column; - width: 100%; - height: 100%; -} - -.header { - border-radius: 1.042rem; - padding-right: 1.25rem; - background: rgba(0, 0, 0, 0.2); - box-shadow: - inset 0 0.052rem 0 rgba(255, 255, 255, 0.15), - inset 0 -0.052rem 0 rgba(255, 255, 255, 0.05); -} - -.feed-date { - margin: 0; - padding: 5.25rem 10rem 0; - font-size: 2.344rem; - font-weight: 400; - line-height: 3.073rem; - color: var(--text-primary); - text-align: center; - text-shadow: 0 0.104rem 0.313rem rgba(0, 0, 0, 0.25); - white-space: nowrap; -} - -.feed-grid { - flex: 1; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: var(--grid-gap); - padding: 3.75rem 10rem 7.5rem; - overflow: hidden; -} - -.feed-card { - display: flex; - flex-direction: column; - gap: var(--card-gap); - padding: var(--card-padding); - background: var(--card-bg); - border: 0.75px solid var(--card-border); - border-radius: var(--card-radius); - backdrop-filter: blur(10px); - overflow: hidden; - box-shadow: - inset 0 0.75px 0 rgba(255, 255, 255, 0.15), - inset 0 -0.75px 0 rgba(255, 255, 255, 0.05); -} - -.feed-card-meta { - display: flex; - flex-direction: column; - gap: 0.375rem; -} - -.feed-card-title { - margin: 0; - font-size: 1.458rem; - font-weight: 700; - line-height: 1.929rem; - color: var(--text-primary); - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - overflow: hidden; -} - -.feed-card-date { - margin-top: 0.5rem; - font-size: 1.042rem; - font-weight: 400; - line-height: 1.563rem; - color: var(--text-muted); - white-space: nowrap; -} - -.feed-card-source { - font-size: 0.833rem; - font-weight: 600; - line-height: 1.25rem; - color: var(--text-muted); - letter-spacing: 0.08em; - text-transform: uppercase; -} - -.feed-card-excerpt { - flex: 1; - margin: 0; - font-size: 1.042rem; - font-weight: 500; - line-height: 1.563rem; - color: var(--text-primary); - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 4; - overflow: hidden; -} - -.feed-error { - flex: 1; - display: flex; - align-items: center; - justify-content: center; - padding-bottom: 10%; - font-size: 1.5rem; - line-height: 3rem; - color: var(--text-muted); - text-align: center; -} - -@media (orientation: portrait) { - .header { - padding: 0.938rem 1.25rem; - border-radius: 1.25rem; - font-size: 1.5rem; - } - - .feed-date { - padding: 10rem 2.5rem 0; - font-size: 5.625rem; - line-height: 7.375rem; - white-space: normal; - } - - .feed-grid { - flex: unset; - margin-top: auto; - grid-template-columns: 1fr; - grid-auto-rows: 1fr; - align-content: start; - padding: 3.75rem 2.5rem 7.5rem; - } - - .feed-card { - gap: 2.5rem; - padding: 3.25rem; - } - - .feed-card:nth-child(n + 4) { - display: none; - } - - .feed-card-title { - font-size: 2rem; - line-height: 2.625rem; - -webkit-line-clamp: 2; - } - - .feed-card-date { - margin-top: 0.75rem; - font-size: 1.5rem; - line-height: 2rem; - } - - .feed-card-source { - font-size: 1.125rem; - line-height: 1.5rem; - } - - .feed-card-excerpt { - font-size: 1.5rem; - line-height: 2rem; - -webkit-line-clamp: 3; - } -} +/* Skip Tailwind's preflight: it resets `border` on every element (including + custom-element hosts like ), which strips their shadow-DOM + :host styling. The design system's own reset.css already normalizes + box-sizing/margin/padding, so preflight isn't needed here. */ +@layer theme, base, utilities; + +@import 'tailwindcss/theme.css' layer(theme); +/* @screenly/edge-apps/styles goes in the `base` layer so Tailwind utilities + (declared after `base` above) always win the cascade, regardless of + selector specificity — unlayered CSS otherwise beats layered CSS. */ +@import '@screenly/edge-apps/styles' layer(base); +@import 'tailwindcss/utilities.css' layer(utilities);