-
Notifications
You must be signed in to change notification settings - Fork 929
feat: DR-8328 Add compute page first stage #7859
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
carlagn
wants to merge
42
commits into
main
Choose a base branch
from
feat/DR-8328-compute-page
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 5 commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
dd6154c
Add compute page first stage
carlagn d7c463f
Update children
carlagn 5621589
Update flex positioning
carlagn bba9660
Update how-it-works
carlagn 674de46
Update flex distance
carlagn 121e62d
Add globe hero to compute page
carlagn 72bced2
remove import
carlagn 021de20
Improve fade in
carlagn 9551710
Update cobeglobe performance
carlagn 2f94a9a
Add network component
carlagn 25ec2b9
Add network globe and fix build
carlagn 288fc1a
Push no networkglobe
carlagn 42963ad
remove both globes
carlagn 6d8405d
Add back globes and fix issues*
carlagn 64d5e61
Remove hero globe
carlagn d297c0e
Fix globe hero
carlagn ccd5ec9
Update location/zone legend
carlagn a822db8
Update how-it-works icons
carlagn a6bf6e3
Optimise animations
carlagn 7c6e1a0
Update how it works
carlagn d690cde
Add dynamic updates
carlagn d3bb903
Update live pulse
carlagn eadbbf3
Update font families
carlagn 567d8f0
update type
carlagn eb14522
feat(docs): add compute docs content
mhartington fe37564
docs(compue): fix builds
mhartington 8e9bf0f
docs(compue): fix builds
mhartington 73fde4c
Update fonts
carlagn 29afa36
Pretty text on title
carlagn 57434ef
Update icons
carlagn 95786ef
Update icons
carlagn 3ba1aad
Update fonts for <h2> and eyebrow
carlagn c6f84a5
Update margin for 02/features
carlagn 9af3564
Update navbar
carlagn 9ab7d7b
Update font-size for text 4xl and 5xl
carlagn 1c29864
feat(docs): add Netlify and Vercel Compute migration guides
aidankmcalister d68d391
feat(site): homepage rework
mhartington 1fd0625
Merge branch 'main' into feat/DR-8328-compute-page
mhartington 56f9d16
design rework
mhartington 7928ca7
seo audit of homepage
mhartington 264152d
adjust images
mhartington a62d7f5
update
mhartington File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,106 +1,121 @@ | ||
| @import "tailwindcss"; | ||
| @import "@prisma/eclipse/styles/globals.css"; | ||
|
|
||
| /* Forward the design-token font variables to the next/font/local preloaded | ||
| families. This :root block intentionally comes after the @import above so | ||
| it wins the cascade at equal specificity. The var() fallbacks preserve the | ||
| original CSS @font-face names in case --font-mona-sans / --font-mona-mono | ||
| are ever absent. */ | ||
| :root { | ||
| --font-sans-display: | ||
| var(--font-mona-sans, "Mona Sans VF"), "Inter", "Roboto", | ||
| "Helvetica Neue", "Arial Nova", "Nimbus Sans", "Arial", sans-serif; | ||
| --font-mono: | ||
| var(--font-mona-mono, "Mona Sans Mono VF"), ui-monospace, | ||
| "Cascadia Code", "Source Code Pro", "Menlo", "Consolas", | ||
| "DejaVu Sans Mono", monospace; | ||
| } | ||
| @import "fumadocs-ui/css/shadcn.css"; | ||
| @import "fumadocs-ui/css/preset.css"; | ||
| @import "fumadocs-openapi/css/preset.css"; | ||
| @import "@prisma-docs/ui/styles"; | ||
| @source "../../node_modules/streamdown/dist/*.js"; | ||
|
|
||
| #nd-sidebar { | ||
| @apply border-e; | ||
| background-color: var(--color-background); | ||
| @apply border-e; | ||
| background-color: var(--color-background); | ||
| } | ||
|
|
||
| header &[data-search-full] { | ||
| @apply rounded-xl; | ||
| @apply rounded-xl; | ||
| } | ||
|
|
||
| /* [data-header-tabs], */ | ||
| [data-header-body] { | ||
| @apply border-none; | ||
| @apply border-none; | ||
| } | ||
|
|
||
| #nd-page { | ||
| @apply @container; | ||
| @apply @container; | ||
| } | ||
|
|
||
| /* Hide reCAPTCHA badge from Kapa SDK - terms are in footer */ | ||
| .grecaptcha-badge { | ||
| visibility: hidden !important; | ||
| visibility: hidden !important; | ||
| } | ||
|
|
||
| @layer utilities { | ||
| .glitch { | ||
| position: relative; | ||
| } | ||
|
|
||
| .glitch::before, | ||
| .glitch::after { | ||
| content: attr(data-text); | ||
| position: absolute; | ||
| top: 0; | ||
| left: 0; | ||
| width: 100%; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| .glitch::before { | ||
| left: 2px; | ||
| text-shadow: -2px 0 red; | ||
| animation: glitch-1 2s infinite linear alternate-reverse; | ||
| } | ||
|
|
||
| .glitch::after { | ||
| left: -2px; | ||
| text-shadow: -2px 0 cyan; | ||
| animation: glitch-2 1.5s infinite linear alternate-reverse; | ||
| } | ||
|
|
||
| @keyframes glitch-1 { | ||
| 0% { | ||
| clip-path: inset(20% 0 60% 0); | ||
| } | ||
| 20% { | ||
| clip-path: inset(10% 0 85% 0); | ||
| } | ||
| 40% { | ||
| clip-path: inset(40% 0 40% 0); | ||
| } | ||
| 60% { | ||
| clip-path: inset(80% 0 5% 0); | ||
| .glitch { | ||
| position: relative; | ||
| } | ||
| 80% { | ||
| clip-path: inset(50% 0 30% 0); | ||
| } | ||
| 100% { | ||
| clip-path: inset(25% 0 55% 0); | ||
| } | ||
| } | ||
|
|
||
| @keyframes glitch-2 { | ||
| 0% { | ||
| clip-path: inset(80% 0 5% 0); | ||
| .glitch::before, | ||
| .glitch::after { | ||
| content: attr(data-text); | ||
| position: absolute; | ||
| top: 0; | ||
| left: 0; | ||
| width: 100%; | ||
| overflow: hidden; | ||
| } | ||
| 20% { | ||
| clip-path: inset(50% 0 30% 0); | ||
| } | ||
| 40% { | ||
| clip-path: inset(20% 0 60% 0); | ||
|
|
||
| .glitch::before { | ||
| left: 2px; | ||
| text-shadow: -2px 0 red; | ||
| animation: glitch-1 2s infinite linear alternate-reverse; | ||
| } | ||
| 60% { | ||
| clip-path: inset(10% 0 85% 0); | ||
|
|
||
| .glitch::after { | ||
| left: -2px; | ||
| text-shadow: -2px 0 cyan; | ||
| animation: glitch-2 1.5s infinite linear alternate-reverse; | ||
| } | ||
| 80% { | ||
| clip-path: inset(40% 0 40% 0); | ||
|
|
||
| @keyframes glitch-1 { | ||
| 0% { | ||
| clip-path: inset(20% 0 60% 0); | ||
| } | ||
| 20% { | ||
| clip-path: inset(10% 0 85% 0); | ||
| } | ||
| 40% { | ||
| clip-path: inset(40% 0 40% 0); | ||
| } | ||
| 60% { | ||
| clip-path: inset(80% 0 5% 0); | ||
| } | ||
| 80% { | ||
| clip-path: inset(50% 0 30% 0); | ||
| } | ||
| 100% { | ||
| clip-path: inset(25% 0 55% 0); | ||
| } | ||
| } | ||
| 100% { | ||
| clip-path: inset(75% 0 15% 0); | ||
|
|
||
| @keyframes glitch-2 { | ||
| 0% { | ||
| clip-path: inset(80% 0 5% 0); | ||
| } | ||
| 20% { | ||
| clip-path: inset(50% 0 30% 0); | ||
| } | ||
| 40% { | ||
| clip-path: inset(20% 0 60% 0); | ||
| } | ||
| 60% { | ||
| clip-path: inset(10% 0 85% 0); | ||
| } | ||
| 80% { | ||
| clip-path: inset(40% 0 40% 0); | ||
| } | ||
| 100% { | ||
| clip-path: inset(75% 0 15% 0); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| @media (prefers-reduced-motion: reduce) { | ||
| .glitch::before, | ||
| .glitch::after { | ||
| animation: none; | ||
| } | ||
| .glitch::before, | ||
| .glitch::after { | ||
| animation: none; | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
In standard CSS, what happens to@importrules that appear after a qualified rule like:root { ... }? Also, for Tailwind CSS v4 with Lightning CSS/PostCSS, does the toolchain safely process late@importrules in source CSS?💡 Result:
In standard CSS,
@importrules that appear after a qualified rule like :root { ... } are invalid and ignored by user agents (browsers). The CSS specification (Cascading and Inheritance Levels 3-6) requires all@importrules to precede all other valid at-rules and style rules (except@charset,@layerstatements, and@supports-condition), or else they are invalid. A qualified rule is a style rule (selector + block), so any@importafter it is ignored. This is confirmed by MDN, W3C specs, and browser behavior. For Tailwind CSS v4 with Lightning CSS/PostCSS, the toolchain does not safely process late@importrules in source CSS. Tailwind v4 uses Lightning CSS for processing, which enforces the same CSS validity rules: late@importrules cause errors or are invalid. Tailwind's built-in@importhandling (replacing postcss-import) processes valid@importrules at the top, inlining them while preserving order and conditions, but late@importsremain invalid per CSS rules and Lightning CSS bundling docs explicitly state they cause errors. Issues in Tailwind repos confirm late@imports(e.g., after@import"tailwindcss") are ignored or fail, requiring them at the top (e.g., before Tailwind import for fonts). No evidence of special handling for late@imports; source CSS must follow standard CSS positioning rules.Citations:
@importin core tailwindlabs/tailwindcss#14446Move the
:rootblock below all@importrules—this placement violates CSS specifications.Per the CSS Cascade specification (Levels 3–6), all
@importrules must precede any qualified rules (like:root { ... }). Any@importthat appears after a qualified rule is invalid and ignored by browsers and build tools alike. Tailwind CSS v4 with Lightning CSS enforces these same rules strictly—it doesn't provide special handling for late imports.The current code at lines 9–17 places
:rootbefore the imports at lines 18–22, which meansfumadocs-ui,fumadocs-openapi, and@prisma-docs/uistyles will be silently dropped during the build, leaving your UI incomplete.Proposed fix
🧰 Tools
🪛 Stylelint (17.9.0)
[error] 18-18: Invalid position for
@importrule (no-invalid-position-at-import-rule)(no-invalid-position-at-import-rule)
[error] 19-19: Invalid position for
@importrule (no-invalid-position-at-import-rule)(no-invalid-position-at-import-rule)
[error] 20-20: Invalid position for
@importrule (no-invalid-position-at-import-rule)(no-invalid-position-at-import-rule)
[error] 21-21: Invalid position for
@importrule (no-invalid-position-at-import-rule)(no-invalid-position-at-import-rule)
[error] 22-22: Unexpected unknown at-rule "@source" (scss/at-rule-no-unknown)
(scss/at-rule-no-unknown)
🤖 Prompt for AI Agents