Skip to content

Commit 5c6e837

Browse files
committed
chore: format
1 parent 2d6d964 commit 5c6e837

File tree

5 files changed

+111
-20
lines changed

5 files changed

+111
-20
lines changed

.github/ISSUE_TEMPLATE/commercial-inquiry.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@ However, we're tracking interest for potential future commercial licensing optio
1717
**Company Name:**
1818
**Website:**
1919
**Contact Person:**
20-
**Email:**
20+
**Email:**
2121

2222
## Intended Use
2323

2424
**How would you like to use LibrarEase commercially?**
2525

26-
2726
**Estimated deployment scale:**
27+
2828
- [ ] Small (1-10 users)
2929
- [ ] Medium (10-100 users)
3030
- [ ] Large (100+ users)
3131
- [ ] Enterprise (1000+ users)
3232

3333
**Use case category:**
34+
3435
- [ ] SaaS/Hosting service
3536
- [ ] Internal business tool
3637
- [ ] Integration into existing product
@@ -41,7 +42,6 @@ However, we're tracking interest for potential future commercial licensing optio
4142

4243
**When would you need commercial licensing?**
4344

44-
4545
---
4646

4747
**Direct contact**: solidifyarmor@gmail.com

.github/workflows/prod-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
id: login-ecr
3838
uses: aws-actions/amazon-ecr-login@v1
3939
with:
40-
mask-password: "true"
40+
mask-password: 'true'
4141

4242
# This is a separate action that sets up buildx runner
4343
- name: Setup Docker Buildx

components/books/three-d-book.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ export const ThreeDBook: React.FC<{
88
}> = ({ book }) => {
99
return (
1010
// container
11-
<div className="[perspective:3000px] group">
11+
<div className="perspective-[3000px] group">
1212
{/* book */}
1313
<div
1414
className={clsx(
1515
'w-56 h-80 mx-auto my-[5%] transform-3d transition-transform duration-500',
16-
'[transform:rotate3d(0,1,0,35deg)] lg:[transform:none] lg:group-hover:[transform:rotate3d(0,1,0,35deg)]'
16+
'transform-[rotate3d(0,1,0,35deg)] lg:transform-none lg:group-hover:transform-[rotate3d(0,1,0,35deg)]'
1717
)}
1818
>
1919
{/* front */}
2020
<div
2121
className={clsx(
22-
'absolute transform-3d [transform-origin:0%_50%] [transform:translate3d(0,0,20px)]',
23-
"after:content-[''] after:bg-accent after:absolute after:top-0 after:bottom-0 after:-left-[1px] after:w-1"
22+
'absolute transform-3d origin-[0%_50%] transform-[translate3d(0,0,20px)]',
23+
"after:content-[''] after:bg-accent after:absolute after:top-0 after:bottom-0 after:-left-px after:w-1"
2424
)}
2525
>
2626
{/* cover */}
@@ -36,10 +36,10 @@ export const ThreeDBook: React.FC<{
3636
/>
3737
</div>
3838
{/* left-side */}
39-
<div className="bg-accent absolute w-10 -left-5 h-80 [transform:rotate3D(0,1,0,-90deg)]">
39+
<div className="bg-accent absolute w-10 -left-5 h-80 transform-[rotate3D(0,1,0,-90deg)]">
4040
<h2
4141
style={{ color: 'var(--color-vibrant)' }}
42-
className="text-sm w-80 h-56 pr-2.5 pt-2 text-right [transform-origin:0%_0%] [transform:rotate(90deg)_translateY(-40px)]"
42+
className="text-sm w-80 h-56 pr-2.5 pt-2 text-right origin-[0%_0%] transform-[rotate(90deg)_translateY(-40px)]"
4343
>
4444
<span className="pr-3">{book.author}</span>
4545
<span>{book.year}</span>

components/common/three-d-logo_tsx

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
'use client'
2+
3+
import { useEffect, useRef } from 'react'
4+
import * as THREE from 'three'
5+
import { RoundedBoxGeometry } from 'three/examples/jsm/geometries/RoundedBoxGeometry.js'
6+
7+
export default function LibraryIcon() {
8+
const mountRef = useRef<HTMLDivElement | null>(null)
9+
10+
useEffect(() => {
11+
// 1. Scene Setup
12+
const scene = new THREE.Scene()
13+
const camera = new THREE.PerspectiveCamera(75, 1, 0.1, 1000)
14+
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true })
15+
16+
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)) // Improve sharpness
17+
renderer.setSize(200, 200) // Match container size
18+
19+
// Keep the canvas inside its container so centering works
20+
renderer.domElement.style.width = '100%'
21+
renderer.domElement.style.height = '100%'
22+
renderer.domElement.style.display = 'block'
23+
const mountEl = mountRef.current
24+
if (!mountEl) return
25+
mountEl.appendChild(renderer.domElement)
26+
27+
// 2. Create the "Stacked Books" Group
28+
const group = new THREE.Group()
29+
const primaryColor =
30+
getComputedStyle(document.documentElement)
31+
.getPropertyValue('--color-primary')
32+
.trim() || '#4f46e5'
33+
const material = new THREE.MeshStandardMaterial({ color: primaryColor })
34+
35+
const heights = [2.5, 1.8, 2.2, 2.2] // first/last tallest, second shortest, third medium
36+
const baseY = -1 // anchor so all books rest on a shared baseline
37+
38+
for (let i = 0; i < 4; i++) {
39+
const height = heights[i]
40+
const bookGeom = new RoundedBoxGeometry(0.4, height, 1.7, 3, 0.07)
41+
const book = new THREE.Mesh(bookGeom, material)
42+
book.position.x = (i - 1.5) * 0.6
43+
book.position.y = baseY + height / 2
44+
45+
if (i === 3) {
46+
// Tilt the last book
47+
book.rotation.z = Math.PI / 10
48+
book.position.x += 0.1
49+
}
50+
51+
group.add(book)
52+
}
53+
scene.add(group)
54+
55+
// 3. Lighting
56+
const light = new THREE.DirectionalLight(0xffffff, 1)
57+
light.position.set(2, 2, 5)
58+
scene.add(light, new THREE.AmbientLight(0xffffff, 0.5))
59+
60+
camera.position.z = 5
61+
62+
// 4. Mouse Tracking Logic
63+
const onMouseMove = (event: MouseEvent) => {
64+
// Normalize mouse coordinates to -1 to +1
65+
const x = (event.clientX / window.innerWidth) * 2 - 1
66+
const y = -(event.clientY / window.innerHeight) * 2 + 1
67+
68+
// Rotate the group slightly based on mouse
69+
group.rotation.y = x * 0.5
70+
group.rotation.x = -y * 0.5
71+
}
72+
73+
window.addEventListener('mousemove', onMouseMove)
74+
75+
// 5. Animation Loop
76+
const animate = () => {
77+
requestAnimationFrame(animate)
78+
renderer.render(scene, camera)
79+
}
80+
animate()
81+
82+
// Cleanup on unmount
83+
return () => {
84+
window.removeEventListener('mousemove', onMouseMove)
85+
mountEl.removeChild(renderer.domElement)
86+
renderer.dispose()
87+
}
88+
}, [])
89+
90+
return <div ref={mountRef} style={{ width: '200px', height: '200px' }} />
91+
}

components/landing.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ export default function LandingPage() {
5959
</div>
6060

6161
<h1 className="text-5xl md:text-7xl font-bold leading-tight">
62-
<span className="bg-gradient-to-r from-foreground via-foreground to-foreground/80 bg-clip-text text-transparent">
62+
<span className="bg-linear-to-r from-foreground via-foreground to-foreground/80 bg-clip-text text-transparent">
6363
Digital Library
6464
</span>
6565
<br />
66-
<span className="bg-gradient-to-r from-emerald-600 via-emerald-500 to-blue-600 dark:from-emerald-400 dark:via-emerald-300 dark:to-blue-400 bg-clip-text text-transparent">
66+
<span className="bg-linear-to-r from-emerald-600 via-emerald-500 to-blue-600 dark:from-emerald-400 dark:via-emerald-300 dark:to-blue-400 bg-clip-text text-transparent">
6767
Reimagined
6868
</span>
6969
</h1>
@@ -77,7 +77,7 @@ export default function LandingPage() {
7777
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center">
7878
<Button
7979
size="lg"
80-
className="bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white border-0 shadow-xl shadow-emerald-500/25 px-8 py-6 text-lg transition-colors duration-300"
80+
className="bg-linear-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white border-0 shadow-xl shadow-emerald-500/25 px-8 py-6 text-lg transition-colors duration-300"
8181
asChild
8282
>
8383
<Link href="/login">
@@ -143,7 +143,7 @@ export default function LandingPage() {
143143
<section className="container mx-auto px-4 py-24">
144144
<div className="text-center mb-16">
145145
<h2 className="text-4xl md:text-5xl font-bold mb-6">
146-
<span className="bg-gradient-to-r from-foreground to-foreground/80 bg-clip-text text-transparent">
146+
<span className="bg-linear-to-r from-foreground to-foreground/80 bg-clip-text text-transparent">
147147
Built for Speed & Simplicity
148148
</span>
149149
</h2>
@@ -190,7 +190,7 @@ export default function LandingPage() {
190190
return (
191191
<div
192192
key={index}
193-
className={`relative p-8 rounded-2xl border border-foreground/10 backdrop-blur-sm bg-gradient-to-br ${feature.gradient} group hover:border-foreground/20 transition-all duration-300 shadow-sm hover:shadow-md`}
193+
className={`relative p-8 rounded-2xl border border-foreground/10 backdrop-blur-sm bg-linear-to-br ${feature.gradient} group hover:border-foreground/20 transition-all duration-300 shadow-sm hover:shadow-md`}
194194
>
195195
<div className="relative">
196196
<div className="inline-flex items-center justify-center w-12 h-12 mb-6 relative">
@@ -217,15 +217,15 @@ export default function LandingPage() {
217217
{/* CTA Section */}
218218
<section className="container mx-auto px-4 py-24">
219219
<div className="max-w-4xl mx-auto text-center">
220-
<div className="relative p-12 rounded-3xl border border-foreground/10 backdrop-blur-sm bg-gradient-to-br from-emerald-500/5 to-blue-500/5">
221-
<div className="absolute inset-0 bg-gradient-to-r from-emerald-500/10 via-transparent to-blue-500/10 rounded-3xl blur-xl" />
220+
<div className="relative p-12 rounded-3xl border border-foreground/10 backdrop-blur-sm bg-linear-to-br from-emerald-500/5 to-blue-500/5">
221+
<div className="absolute inset-0 bg-linear-to-r from-emerald-500/10 via-transparent to-blue-500/10 rounded-3xl blur-xl" />
222222
<div className="relative">
223223
<h2 className="text-4xl md:text-5xl font-bold mb-6">
224-
<span className="bg-gradient-to-r from-foreground to-foreground/80 bg-clip-text text-transparent">
224+
<span className="bg-linear-to-r from-foreground to-foreground/80 bg-clip-text text-transparent">
225225
Ready to Transform
226226
</span>
227227
<br />
228-
<span className="bg-gradient-to-r from-emerald-400 to-blue-400 bg-clip-text text-transparent">
228+
<span className="bg-linear-to-r from-emerald-400 to-blue-400 bg-clip-text text-transparent">
229229
Your Library?
230230
</span>
231231
</h2>
@@ -235,7 +235,7 @@ export default function LandingPage() {
235235
</p>
236236
<Button
237237
size="lg"
238-
className="bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white border-0 shadow-xl shadow-emerald-500/25 px-8 py-6 text-lg transition-colors duration-300"
238+
className="bg-linear-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white border-0 shadow-xl shadow-emerald-500/25 px-8 py-6 text-lg transition-colors duration-300"
239239
asChild
240240
>
241241
<Link href="/signup">

0 commit comments

Comments
 (0)