1+ /* ------------------------------
2+ Root Container
3+ ------------------------------ */
4+
5+ .ebook-container {
6+ padding : 4rem 1.5rem ;
7+ max-width : 1280px ;
8+ margin : 0 auto;
9+ font-family : var (--ifm-font-family-base );
10+
11+ }
12+
13+
14+
15+ /* ------------------------------
16+ Hero Section
17+ ------------------------------ */
18+ .ebook-hero {
19+ text-align : center;
20+ margin-bottom : 3rem ;
21+ animation : fadeIn 0.6s ease-in;
22+ }
23+
24+ .ebook-title {
25+ font-size : 3rem ;
26+ font-weight : 700 ;
27+ color : var (--ifm-heading-color );
28+ }
29+
30+ .ebook-subtitle {
31+ color : var (--ifm-color-gray-700 );
32+ margin-top : 0.75rem ;
33+ font-size : 1.2rem ;
34+ max-width : 700px ;
35+ margin-left : auto;
36+ margin-right : auto;
37+ }
38+
39+ .ebook-search {
40+ margin-top : 1.5rem ;
41+ padding : 0.9rem 1.3rem ;
42+ width : 60% ;
43+ max-width : 480px ;
44+ border-radius : 12px ;
45+ border : 1px solid var (--ifm-toc-border-color );
46+ font-size : 1rem ;
47+ background-color : var (--ifm-background-color );
48+ box-shadow : var (--ifm-global-shadow-lw );
49+ transition : all 0.25s ease;
50+ }
51+
52+ .ebook-search : focus {
53+ border-color : var (--ifm-color-primary );
54+ box-shadow : 0 0 0 4px rgba (0 , 122 , 255 , 0.15 );
55+ outline : none;
56+ }
57+
58+ /* ------------------------------
59+ Grid Section
60+ ------------------------------ */
61+ .ebook-grid {
62+ display : grid;
63+ grid-template-columns : repeat (auto-fit, minmax (260px , 1fr ));
64+ gap : 2rem ;
65+ justify-items : center;
66+ animation : fadeInUp 0.6s ease-in;
67+ }
68+
69+ /* ------------------------------
70+ Ebook Card
71+ ------------------------------ */
72+ .ebook-card {
73+ width : 100% ;
74+ max-width : 280px ;
75+ background : var (--ifm-card-background-color );
76+ border-radius : 16px ;
77+ box-shadow : var (--ifm-global-shadow-lw );
78+ overflow : hidden;
79+ cursor : pointer;
80+ display : flex;
81+ flex-direction : column;
82+ transition : transform 0.3s ease, box-shadow 0.3s ease;
83+ }
84+
85+ .ebook-card : hover {
86+ transform : translateY (-8px );
87+ box-shadow : var (--ifm-global-shadow-md );
88+ }
89+
90+ /* ------------------------------
91+ Image Section
92+ ------------------------------ */
93+ .ebook-image-wrapper {
94+ height : 220px ;
95+ overflow : hidden;
96+ position : relative;
97+ border-bottom : 1px solid var (--ifm-toc-border-color );
98+ }
99+
100+ .ebook-image {
101+ width : 100% ;
102+ height : 100% ;
103+ object-fit : cover;
104+ transition : transform 0.35s ease;
105+ }
106+
107+ .ebook-card : hover .ebook-image {
108+ transform : scale (1.05 );
109+ }
110+
111+ /* ------------------------------
112+ Content Section
113+ ------------------------------ */
114+ .ebook-content {
115+ flex : 1 ;
116+ display : flex;
117+ flex-direction : column;
118+ justify-content : flex-start;
119+ padding : 1.5rem 1.25rem ;
120+ }
121+
122+ .ebook-card-title {
123+ font-weight : 600 ;
124+ font-size : 1.3rem ;
125+ color : var (--ifm-heading-color );
126+ margin-bottom : 0.6rem ;
127+ }
128+
129+ .ebook-card-desc {
130+ color : var (--ifm-color-gray-700 );
131+ font-size : 1rem ;
132+ line-height : 1.55 ;
133+ margin-bottom : 0.8rem ;
134+ }
135+
136+ /* ------------------------------
137+ Category Tag
138+ ------------------------------ */
139+ .ebook-category {
140+ display : inline-block;
141+ margin-top : 1rem ;
142+ font-size : 0.85rem ;
143+ font-weight : 500 ;
144+ color : var (--ifm-color-primary );
145+ background-color : rgba (0 , 122 , 255 , 0.08 );
146+ padding : 0.4rem 0.8rem ;
147+ border-radius : 6px ;
148+ text-transform : uppercase;
149+ letter-spacing : 0.5px ;
150+ align-self : flex-start;
151+ }
152+
153+ /* ------------------------------
154+ Button
155+ ------------------------------ */
156+ .ebook-read-btn {
157+ color : # fff ;
158+ background-color : var (--ifm-color-primary );
159+ border : none;
160+ border-radius : 10px ;
161+ padding : 0.7rem 1.3rem ;
162+ font-size : 0.95rem ;
163+ font-weight : 500 ;
164+ cursor : pointer;
165+ transition : background-color 0.25s ease, transform 0.2s ease;
166+ align-self : flex-start;
167+ }
168+
169+ .ebook-read-btn : hover {
170+ transform : translateY (-2px );
171+ background-color : # 0056d2 ;
172+ }
173+
174+ /* ------------------------------
175+ No Results
176+ ------------------------------ */
177+ .no-results {
178+ text-align : center;
179+ padding : 50px 0 ;
180+ font-size : 1.2rem ;
181+ grid-column : 1 / -1 ;
182+ }
183+
184+ @keyframes fadeIn {
185+ from {
186+ opacity : 0 ;
187+ transform : translateY (10px );
188+ }
189+
190+ to {
191+ opacity : 1 ;
192+ transform : translateY (0 );
193+ }
194+ }
195+
196+ @keyframes fadeInUp {
197+ from {
198+ opacity : 0 ;
199+ transform : translateY (20px );
200+ }
201+
202+ to {
203+ opacity : 1 ;
204+ transform : translateY (0 );
205+ }
206+ }
207+
208+ @media (max-width : 768px ) {
209+ .ebook-search {
210+ width : 90% ;
211+ }
212+
213+ .ebook-title {
214+ font-size : 2.4rem ;
215+ }
216+
217+ .ebook-card {
218+ max-width : 95% ;
219+ }
220+ }
221+
222+ @media (min-width : 1024px ) {
223+ .ebook-grid {
224+ grid-template-columns : repeat (4 , 1fr );
225+ }
226+ }
227+
228+ @media (min-width : 768px ) and (max-width : 1023px ) {
229+ .ebook-grid {
230+ grid-template-columns : repeat (3 , 1fr );
231+ }
232+ }
233+
234+ @media (max-width : 767px ) {
235+ .ebook-grid {
236+ grid-template-columns : repeat (1 , 1fr );
237+ }
238+ }
0 commit comments