redirecter for ao3 that adds opengraph metadata

implement responsive styling

Changed files
+16 -10
src
app
+6 -6
src/app/generator/page.js
···
<li><label><input type="radio" name="summaryType" defaultChecked={props.summaryType === 'chapter'} value="chapter" onChange={e => updateProp(e.target.name, e.target.value)} /> Chapter Summary (if available)</label></li>
<li><label><input type="radio" name="summaryType" defaultChecked={props.summaryType === 'custom'} value="custom" onChange={e => updateProp(e.target.name, e.target.value)} /> Custom Summary</label></li>
</ul>
</div>
-
{props.summaryType === 'custom' && (
-
<div className="input-field">
-
<label htmlFor="customSummary">Custom Summary</label>
-
<textarea name="customSummary" id="customSummary" onChange={e => updateProp(e.target.name, e.target.value)}></textarea>
-
</div>
-
)}
</div>
</details>
</form>
···
<li><label><input type="radio" name="summaryType" defaultChecked={props.summaryType === 'chapter'} value="chapter" onChange={e => updateProp(e.target.name, e.target.value)} /> Chapter Summary (if available)</label></li>
<li><label><input type="radio" name="summaryType" defaultChecked={props.summaryType === 'custom'} value="custom" onChange={e => updateProp(e.target.name, e.target.value)} /> Custom Summary</label></li>
</ul>
+
{props.summaryType === 'custom' && (
+
<div className="input-field">
+
<label htmlFor="customSummary">Custom Summary</label>
+
<textarea name="customSummary" id="customSummary" onChange={e => updateProp(e.target.name, e.target.value)}></textarea>
+
</div>
+
)}
</div>
</div>
</details>
</form>
+9 -4
src/app/globals.css
···
}
textarea {
-
width: 500px;
max-width: 100%;
-
min-height: 200px;
}
.input-field {
···
form ul {
list-style: none;
-
margin: 0;
padding: 0;
}
···
gap: 20px;
}
-
#output {
border: 1px white dashed;
···
}
textarea {
+
width: 100%;
max-width: 100%;
+
min-height: 100px;
}
.input-field {
···
form ul {
list-style: none;
+
margin: 0 0 1em;
padding: 0;
}
···
gap: 20px;
}
+
@media only screen and (max-width: 767px) {
+
details .cols {
+
grid-template-columns: auto;
+
gap: 0;
+
}
+
}
#output {
border: 1px white dashed;
+1
src/app/layout.js
···
export const metadata = {
title: process.env.SITENAME,
description: process.env.DESCRIPTION,
};
export default function RootLayout({ children }) {
···
export const metadata = {
title: process.env.SITENAME,
description: process.env.DESCRIPTION,
+
viewport: "width=device-width, initial-scale=1.0"
};
export default function RootLayout({ children }) {