diff --git a/web2/public/images/physlib-logo.png b/web2/public/images/physlib-logo.png new file mode 100644 index 0000000..a606eca Binary files /dev/null and b/web2/public/images/physlib-logo.png differ diff --git a/web2/src/app/about/beneficiaries/page.tsx b/web2/src/app/about/beneficiaries/page.tsx new file mode 100644 index 0000000..ca6b14d --- /dev/null +++ b/web2/src/app/about/beneficiaries/page.tsx @@ -0,0 +1,61 @@ +import type { Metadata } from "next"; +import { AboutSectionNav } from "@/components/about-section-nav"; +import { audiences } from "@/lib/about-content"; + +export const metadata: Metadata = { + title: "Beneficiaries", + description: + "Who Physlib is for — researchers, students, companies, and labs working with physics and formal methods.", +}; + +export default function BeneficiariesPage() { + return ( +
About
++ For physicists and formal-methods researchers. +
+ +{a.tag}
+About
++ Why formalize physics? +
+ ++ {item} +
++ Read the paper:{" "} + + {paper.label} + +
+ +About
++ Create a library of digitalized physics results in Lean 4, + useful to the broad physics community. +
+ ++ {point} +
+About
++ {site.description} +
+ + {/* Section index */} +About
++ Built on principles. +
+ ++ {v.body} +
+@@ -38,7 +38,9 @@ export default function DocumentationTrackerPage() { {docSteps.map((step) => (
+ Lean is an interactive theorem prover where you write mathematical + definitions, theorems, and proofs — and the system verifies + correctness using type theory, with no gaps or hand-waving. +
++ Increasingly used by AI labs and mathematicians, Lean is now + making its way into physics through Physlib. +
+
+
+ theorem wicks_theorem : (φs : List 𝓕.FieldOp) → 𝓣(ofFieldOpList φs) ={"\n"}
+ {" "}∑ (φsΛ : WickContraction φs.length), φsΛ.wickTerm{"\n"}
+ | [] => by{"\n"}
+ {" "}rw [timeOrder_ofFieldOpList_nil]{"\n"}
+ {" "}simp only [map_one, List.length_nil, Algebra.smul_mul_assoc]{"\n"}
+ {" "}rw [sum_WickContraction_nil]{"\n"}
+ {" "}simp only [wickTerm_empty_nil]{"\n"}
+ | φ :: φs => by
+
+
+ The Physlib community is full of members who can point you in the right direction if you want to discuss an idea before opening an issue. - There is a Physlib channel on the Leanprover Zulip where you can post any questions you have. + There is a Physlib channel on the Leanprover Zulip where you can post any questions you have.
master{" "} branch before starting work. This ensures that your changes are based on the most recent version of the codebase and reduces the likelihood of merge conflicts. We recommend you use a git GUI if you are not familiar with the command line. - +
{/* Step 3 — Pull Request */}Small pull-requests are better than large ones — even if it's just a single result. Follow the PR template provided by GitHub when opening your PR. @@ -169,7 +155,8 @@ export default function GhGuidePage() {
After opening a PR, the maintainers will review the changes and provide feedback. Feel free to begin work on a separate PR in the meantime but be prepared to make changes to this one if required.
@@ -282,12 +266,7 @@ export default function GhGuidePage() {
Once the reviewer is happy with the changes, they will merge the PR into the main branch. Physlib uses a{" "}
-
Please use your real name in your GitHub account settings and commit author. Physlib uses
GitHub account names in its automated documentation generation, so using your real name
diff --git a/web2/src/app/globals.css b/web2/src/app/globals.css
index dc17816..b42085e 100644
--- a/web2/src/app/globals.css
+++ b/web2/src/app/globals.css
@@ -86,6 +86,13 @@ body {
var(--background);
}
+/* ─── Logo mark ─────────────────────────────────────────────── */
+/* The logo is black line-art on transparency, so it flips to white in dark
+ mode. invert() leaves alpha alone, which keeps the edges anti-aliased. */
+[data-theme="dark"] .logo-mark {
+ filter: invert(1);
+}
+
/* ─── Animations ────────────────────────────────────────────── */
@keyframes fade-up {
from { opacity: 0; transform: translateY(20px); }
@@ -96,6 +103,30 @@ body {
.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
+@keyframes carousel-in-right {
+ from { opacity: 0; transform: translateX(24px); }
+ to { opacity: 1; transform: translateX(0); }
+}
+@keyframes carousel-in-left {
+ from { opacity: 0; transform: translateX(-24px); }
+ to { opacity: 1; transform: translateX(0); }
+}
+
+@keyframes carousel-progress {
+ from { transform: scaleX(0); }
+ to { transform: scaleX(1); }
+}
+
+.carousel-progress {
+ animation-name: carousel-progress;
+ animation-timing-function: linear;
+ animation-fill-mode: forwards;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .carousel-progress { animation: none; }
+}
+
/* ─── Prose ─────────────────────────────────────────────────── */
@layer components {
.prose-physlib { @apply text-foreground leading-relaxed; }
@@ -124,6 +155,11 @@ body {
.prose-physlib img { @apply rounded my-4 max-w-full h-auto; }
}
+/* ─── TOC anchor offset (clears fixed navbar) ───────────────── */
+h2[id], h3[id] {
+ scroll-margin-top: 5rem;
+}
+
@keyframes shimmer {
0% { background-position: -200% 0; }
100% { background-position: 200% 0; }
diff --git a/web2/src/app/page.tsx b/web2/src/app/page.tsx
index 21e4c50..745dde2 100644
--- a/web2/src/app/page.tsx
+++ b/web2/src/app/page.tsx
@@ -1,40 +1,52 @@
import Link from "next/link";
import { site } from "@/lib/site";
+import { GetInvolvedCarousel } from "@/components/get-involved-carousel";
export default function HomePage() {
return (
-
+ Digitalizing Physics in Lean 4
+
An open-source, community project to digitalize results from physics
into Lean 4.
About Lean
- Lean is an interactive theorem prover where you write mathematical
- definitions, theorems, and proofs — and the system verifies
- correctness using type theory, with no gaps or hand-waving.
-
- Increasingly used by AI labs and mathematicians, Lean is now
- making its way into physics through Physlib.
- Mission
- Create a library of digitalized physics results in Lean 4,
- useful to the broad physics community.
-
- {point}
- Values
- {v.body}
- Beneficiaries {a.tag} Impact Get Involved
- {item}
- Join Physlib
- Whether you're a physicist, a Lean developer, or just curious —
- there's a place for you in Physlib.
-
- Read the paper:{" "}
-
- arXiv:2405.08863
-
-
- Additional Guidance
-
+
- Digitalizing Physics
in Lean 4
+ {/* Wordmark */}
+
+
+ {/* Tagline */}
+
- (formerly PhysLean & Lean-QuantumInfo)
+ (formerly PhysLean & Lean-QuantumInfo)
- A theorem prover that guarantees correctness.
-
-
-
-
- theorem wicks_theorem : (φs : List 𝓕.FieldOp) → 𝓣(ofFieldOpList φs) ={"\n"}
- {" "}∑ (φsΛ : WickContraction φs.length), φsΛ.wickTerm{"\n"}
- | [] => by{"\n"}
- {" "}rw [timeOrder_ofFieldOpList_nil]{"\n"}
- {" "}simp only [map_one, List.length_nil, Algebra.smul_mul_assoc]{"\n"}
- {" "}rw [sum_WickContraction_nil]{"\n"}
- {" "}simp only [wickTerm_empty_nil]{"\n"}
- | φ :: φs => by
-
-
- Built on principles.
-
-
- {v.title}
-
-
- For physicists and
-
formal-methods researchers.
-
- {a.title}
-
-
- {a.items.map((item) => (
-
-
- Why formalize physics?
+ How you can contribute:
-
- Help build the future
-
of physics.
-
+ {card.title}
+
+
+
+ {card.items.map((item) => (
+
+
+