Skip to content

Commit 6375933

Browse files
authored
Merge pull request #3 from pdedgar1/claude/init-project-011CUsp2T43mKf1iMRqQUD2b
Claude/init project 011 c usp2 t43m kf1i m rq qud2b
2 parents 5f983d6 + 20c0be4 commit 6375933

5 files changed

Lines changed: 171 additions & 9 deletions

File tree

alphabetizer-lab.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@
2020
<h1>Alphabetizer Lab</h1>
2121

2222
<div class="upload-section">
23+
<div class="upload-icon">📄</div>
2324
<h2>Upload Text File</h2>
24-
<input type="file" id="textFile" class="file-input" accept=".txt" />
2525
<p>Select a .txt file to analyze and rearrange its words</p>
26+
<label class="file-input-wrapper">
27+
Choose File
28+
<input type="file" id="textFile" accept=".txt" />
29+
</label>
2630
</div>
2731

28-
<div class="options-section" id="optionsSection">
32+
<div class="options-section" id="optionsSection" style="display: none;">
2933
<div class="option-group">
3034
<label>Display Arrangement:</label>
3135
<div class="radio-group">

eraser-lab.html

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<!-- Tool content here -->
1919
<div class="container">
2020
<div class="header">
21-
<h1>Interactive Poetry Eraser</h1>
21+
<h1>Eraser Lab</h1>
2222
<p>Transform text through selective erasure • Create found poetry from any text</p>
2323
</div>
2424

@@ -88,6 +88,10 @@ <h3>Display Options</h3>
8888
<input type="checkbox" id="preserveSpacing" checked>
8989
<label for="preserveSpacing">Preserve Original Spacing</label>
9090
</div>
91+
<div class="checkbox-container">
92+
<input type="checkbox" id="preserveLineBreaks" checked>
93+
<label for="preserveLineBreaks">Preserve Line Breaks</label>
94+
</div>
9195
</div>
9296
</div>
9397
</div>
@@ -124,7 +128,8 @@ <h3>Display Options</h3>
124128
const fontSizeSlider = document.getElementById('fontSizeSlider');
125129
const fontSizeValue = document.getElementById('fontSizeValue');
126130
const preserveSpacing = document.getElementById('preserveSpacing');
127-
131+
const preserveLineBreaks = document.getElementById('preserveLineBreaks');
132+
128133
// Advanced pattern checkboxes
129134
const patternCheckboxes = {
130135
2: document.getElementById('eraseEvery2nd'),
@@ -185,6 +190,10 @@ <h3>Display Options</h3>
185190
if (originalText) processText();
186191
});
187192

193+
preserveLineBreaks.addEventListener('change', () => {
194+
if (originalText) processText();
195+
});
196+
188197
// Advanced pattern listeners
189198
Object.values(patternCheckboxes).forEach(checkbox => {
190199
checkbox.addEventListener('change', () => {
@@ -195,11 +204,17 @@ <h3>Display Options</h3>
195204
function processText() {
196205
if (!originalText) return;
197206

207+
// Handle line breaks if not preserving them
208+
let textToProcess = originalText;
209+
if (!preserveLineBreaks.checked) {
210+
textToProcess = originalText.replace(/[\r\n]+/g, ' ');
211+
}
212+
198213
let elements;
199214
if (currentMode === 'word') {
200-
elements = originalText.split(' ');
215+
elements = textToProcess.split(' ');
201216
} else {
202-
elements = originalText.split('');
217+
elements = textToProcess.split('');
203218
}
204219

205220
const processedElements = elements.map((element, index) => {

line-break-lab.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<!-- Tool content here -->
1919
<div class="container">
20-
<h1>Line Break Laboratory</h1>
20+
<h1>Line Break Lab</h1>
2121
<p class="subtitle">Experiment with adding and removing line breaks in your text</p>
2222

2323
<div class="upload-zone" id="uploadZone">

styles.css

Lines changed: 144 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@ body {
1414
color: #1a1a1a;
1515
}
1616

17+
@media (max-width: 768px) {
18+
body {
19+
padding: 10px;
20+
}
21+
}
22+
23+
@media (max-width: 480px) {
24+
body {
25+
padding: 5px;
26+
}
27+
}
28+
1729
/* Main Navigation */
1830
.main-nav {
1931
background: #1a1a1a;
@@ -25,6 +37,22 @@ body {
2537
border-bottom: 3px solid #c41e3a;
2638
}
2739

40+
@media (max-width: 768px) {
41+
.main-nav {
42+
padding: 12px 20px;
43+
margin: -30px -30px 20px -30px;
44+
gap: 12px;
45+
}
46+
}
47+
48+
@media (max-width: 480px) {
49+
.main-nav {
50+
padding: 10px 15px;
51+
margin: -20px -20px 15px -20px;
52+
gap: 8px;
53+
}
54+
}
55+
2856
.main-nav a {
2957
color: #ffffff;
3058
text-decoration: none;
@@ -37,6 +65,21 @@ body {
3765
letter-spacing: 0.5px;
3866
}
3967

68+
@media (max-width: 768px) {
69+
.main-nav a {
70+
padding: 6px 12px;
71+
font-size: 0.85em;
72+
}
73+
}
74+
75+
@media (max-width: 480px) {
76+
.main-nav a {
77+
padding: 5px 10px;
78+
font-size: 0.8em;
79+
letter-spacing: 0.3px;
80+
}
81+
}
82+
4083
.main-nav a:hover {
4184
background: #c41e3a;
4285
color: #ffffff;
@@ -52,13 +95,31 @@ body {
5295
background: #ffffff;
5396
border-radius: 0;
5497
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
55-
max-width: 1200px;
98+
max-width: 95vw;
5699
width: 100%;
57100
margin: 0 auto;
58101
padding: 40px;
59102
border: 1px solid #1a1a1a;
60103
}
61104

105+
@media (min-width: 1600px) {
106+
.container {
107+
max-width: 1800px;
108+
}
109+
}
110+
111+
@media (max-width: 768px) {
112+
.container {
113+
padding: 30px;
114+
}
115+
}
116+
117+
@media (max-width: 480px) {
118+
.container {
119+
padding: 20px;
120+
}
121+
}
122+
62123
/* Headers */
63124
h1 {
64125
color: #1a1a1a;
@@ -71,13 +132,39 @@ h1 {
71132
padding-bottom: 10px;
72133
}
73134

135+
@media (max-width: 768px) {
136+
h1 {
137+
font-size: 2em;
138+
letter-spacing: 1.5px;
139+
}
140+
}
141+
142+
@media (max-width: 480px) {
143+
h1 {
144+
font-size: 1.6em;
145+
letter-spacing: 1px;
146+
}
147+
}
148+
74149
h2 {
75150
color: #1a1a1a;
76151
font-size: 1.8em;
77152
margin-bottom: 15px;
78153
font-weight: 600;
79154
}
80155

156+
@media (max-width: 768px) {
157+
h2 {
158+
font-size: 1.5em;
159+
}
160+
}
161+
162+
@media (max-width: 480px) {
163+
h2 {
164+
font-size: 1.3em;
165+
}
166+
}
167+
81168
h3 {
82169
color: #4a4a4a;
83170
margin-bottom: 10px;
@@ -87,12 +174,38 @@ h3 {
87174
letter-spacing: 1px;
88175
}
89176

177+
@media (max-width: 768px) {
178+
h3 {
179+
font-size: 1.1em;
180+
}
181+
}
182+
183+
@media (max-width: 480px) {
184+
h3 {
185+
font-size: 1em;
186+
letter-spacing: 0.5px;
187+
}
188+
}
189+
90190
.subtitle {
91191
color: #4a4a4a;
92192
margin-bottom: 30px;
93193
font-size: 1.1em;
94194
}
95195

196+
@media (max-width: 768px) {
197+
.subtitle {
198+
font-size: 1em;
199+
margin-bottom: 20px;
200+
}
201+
}
202+
203+
@media (max-width: 480px) {
204+
.subtitle {
205+
font-size: 0.95em;
206+
}
207+
}
208+
96209
/* Tool List - Homepage Grid */
97210
.tool-list {
98211
display: grid;
@@ -101,6 +214,22 @@ h3 {
101214
margin-top: 40px;
102215
}
103216

217+
@media (max-width: 768px) {
218+
.tool-list {
219+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
220+
gap: 15px;
221+
margin-top: 30px;
222+
}
223+
}
224+
225+
@media (max-width: 480px) {
226+
.tool-list {
227+
grid-template-columns: 1fr;
228+
gap: 12px;
229+
margin-top: 20px;
230+
}
231+
}
232+
104233
.tool-list .tool-card {
105234
background: #ffffff;
106235
border: 2px solid #4a4a4a;
@@ -142,6 +271,20 @@ h3 {
142271
border-bottom: 3px solid #c41e3a;
143272
}
144273

274+
@media (max-width: 768px) {
275+
.header {
276+
padding: 25px;
277+
margin: -30px -30px 20px -30px;
278+
}
279+
}
280+
281+
@media (max-width: 480px) {
282+
.header {
283+
padding: 20px;
284+
margin: -20px -20px 15px -20px;
285+
}
286+
}
287+
145288
.header h1 {
146289
color: #ffffff;
147290
border-bottom: none;

text-reverse-lab.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<!-- Tool content here -->
1919
<div class="container">
20-
<h1>Text Reversal Playground</h1>
20+
<h1>Text Reversal Lab</h1>
2121
<p class="subtitle">Upload a .txt file and experiment with reversing words and sentences</p>
2222

2323
<div class="upload-zone" id="uploadZone">

0 commit comments

Comments
 (0)