fix all URLs to be relative, not root

This commit is contained in:
Tom
2023-04-29 12:47:30 +02:00
parent d9322a31b4
commit 70fd17d91f
16 changed files with 83 additions and 83 deletions
+4 -4
View File
@@ -168,10 +168,10 @@ export default function App() {
return (
<div>
<Helmet>
<link rel="apple-touch-icon" sizes="180x180" href="/assets/logo/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/assets/logo/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/assets/logo/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="apple-touch-icon" sizes="180x180" href="assets/logo/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/logo/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/logo/favicon-16x16.png" />
<link rel="manifest" href="site.webmanifest" />
<meta name="msapplication-TileColor" content="#fee9cd" />
<meta name="theme-color" content="#ffffff" />
</Helmet>
+2 -2
View File
@@ -15,7 +15,7 @@ const ImageBanner = () => {
const randomImage = Math.floor(Math.random() * images.length) + 1;
const img = new Image();
img.src = `${process.env.PUBLIC_URL}/assets/banners/banner-${randomImage}.jpg`;
img.src = `${process.env.PUBLIC_URL}assets/banners/banner-${randomImage}.jpg`;
img.onload = () => {
if (isMounted) {
@@ -33,7 +33,7 @@ const ImageBanner = () => {
return (
<>
{currentImage && <img id="banner-img" src={`${process.env.PUBLIC_URL}/assets/banners/banner-${currentImage}.jpg`} alt="banner" />}
{currentImage && <img id="banner-img" src={`${process.env.PUBLIC_URL}assets/banners/banner-${currentImage}.jpg`} alt="banner" />}
</>
);
};
+15 -15
View File
@@ -490,7 +490,7 @@ export const PostFormLink = styled.div`
case 'Yotsuba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -511,7 +511,7 @@ export const PostFormLink = styled.div`
case 'Yotsuba-B':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c !important;
border-radius: 3px 3px 3px 3px;
@@ -531,7 +531,7 @@ export const PostFormLink = styled.div`
case 'Futaba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -552,7 +552,7 @@ export const PostFormLink = styled.div`
case 'Burichan':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c;
border-radius: 3px 3px 3px 3px;
@@ -574,7 +574,7 @@ export const PostFormLink = styled.div`
case 'Tomorrow':
return `.btn-wrap {
background-color: #1b1c1e;
background-image: url(/assets/buttonfade-dark.png);
background-image: url(assets/buttonfade-dark.png);
border: 1px solid #282a2e;
color: #707070;
border-radius: 3px 3px 3px 3px;
@@ -1426,7 +1426,7 @@ export const TopBar = styled.div`
case 'Yotsuba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -1447,7 +1447,7 @@ export const TopBar = styled.div`
case 'Yotsuba-B':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c !important;
border-radius: 3px 3px 3px 3px;
@@ -1467,7 +1467,7 @@ export const TopBar = styled.div`
case 'Futaba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -1488,7 +1488,7 @@ export const TopBar = styled.div`
case 'Burichan':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c;
border-radius: 3px 3px 3px 3px;
@@ -1510,7 +1510,7 @@ export const TopBar = styled.div`
case 'Tomorrow':
return `.btn-wrap {
background-color: #1b1c1e;
background-image: url(/assets/buttonfade-dark.png);
background-image: url(assets/buttonfade-dark.png);
border: 1px solid #282a2e;
color: #707070;
border-radius: 3px 3px 3px 3px;
@@ -3053,7 +3053,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #f0e0d6;
border: 1px solid #c0a69d;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -3170,7 +3170,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #d6daf0;
border: 1px solid #b7c5d9;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -3283,7 +3283,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #f0e0d6;
border: 1px solid #c0a69d;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -3399,7 +3399,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #d6daf0;
border: 1px solid #b7c5d9;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -3516,7 +3516,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: rgb(27,28,30);
border: 1px solid #282A2E;
background-image: url(/assets/buttonfade-dark.png);
background-image: url(assets/buttonfade-dark.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -103,7 +103,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_red.png);
background-image: url(assets/buttons/cross_red.png);
}
span {
@@ -124,7 +124,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_blue.png);
background-image: url(assets/buttons/cross_blue.png);
}
span {
@@ -145,7 +145,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_red.png);
background-image: url(assets/buttons/cross_red.png);
}
span {
@@ -166,7 +166,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_blue.png);
background-image: url(assets/buttons/cross_blue.png);
}
span {
@@ -186,7 +186,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_dark.png);
background-image: url(assets/buttons/cross_dark.png);
}
#field {
@@ -230,7 +230,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_photon.png);
background-image: url(assets/buttons/cross_photon.png);
}
span {
+1 -1
View File
@@ -40,7 +40,7 @@ export const Threads = styled.div`
}
.sticky-icon {
background-image: url(/assets/sticky.gif);
background-image: url(assets/sticky.gif);
width: 16px;
height: 16px;
display: inline-block;
+6 -6
View File
@@ -121,7 +121,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_red.png);
background-image: url(assets/buttons/cross_red.png);
}
span {
@@ -142,7 +142,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_blue.png);
background-image: url(assets/buttons/cross_blue.png);
}
span {
@@ -163,7 +163,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_red.png);
background-image: url(assets/buttons/cross_red.png);
}
span {
@@ -184,7 +184,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_blue.png);
background-image: url(assets/buttons/cross_blue.png);
}
span {
@@ -204,7 +204,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_dark.png);
background-image: url(assets/buttons/cross_dark.png);
}
#name {
@@ -248,7 +248,7 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_photon.png);
background-image: url(assets/buttons/cross_photon.png);
}
span {
+18 -18
View File
@@ -186,15 +186,15 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_red.png);
background-image: url(assets/buttons/cross_red.png);
}
.plus {
background-image: url(/assets/buttons/post_expand_plus_red.png);
background-image: url(assets/buttons/post_expand_plus_red.png);
}
.minus {
background-image: url(/assets/buttons/post_expand_minus_red.png);
background-image: url(assets/buttons/post_expand_minus_red.png);
}
.all-button {
@@ -216,15 +216,15 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_blue.png);
background-image: url(assets/buttons/cross_blue.png);
}
.plus {
background-image: url(/assets/buttons/post_expand_plus_blue.png);
background-image: url(assets/buttons/post_expand_plus_blue.png);
}
.minus {
background-image: url(/assets/buttons/post_expand_minus_blue.png);
background-image: url(assets/buttons/post_expand_minus_blue.png);
}
.all-button {
@@ -246,15 +246,15 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_red.png);
background-image: url(assets/buttons/cross_red.png);
}
.plus {
background-image: url(/assets/buttons/post_expand_plus_red.png);
background-image: url(assets/buttons/post_expand_plus_red.png);
}
.minus {
background-image: url(/assets/buttons/post_expand_minus_red.png);
background-image: url(assets/buttons/post_expand_minus_red.png);
}
.all-button {
@@ -276,15 +276,15 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_blue.png);
background-image: url(assets/buttons/cross_blue.png);
}
.plus {
background-image: url(/assets/buttons/post_expand_plus_blue.png);
background-image: url(assets/buttons/post_expand_plus_blue.png);
}
.minus {
background-image: url(/assets/buttons/post_expand_minus_blue.png);
background-image: url(assets/buttons/post_expand_minus_blue.png);
}
.all-button {
@@ -306,15 +306,15 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_dark.png);
background-image: url(assets/buttons/cross_dark.png);
}
.plus {
background-image: url(/assets/buttons/post_expand_plus_dark.png);
background-image: url(assets/buttons/post_expand_plus_dark.png);
}
.minus {
background-image: url(/assets/buttons/post_expand_minus_dark.png);
background-image: url(assets/buttons/post_expand_minus_dark.png);
}
.all-button {
@@ -346,15 +346,15 @@ export const StyledModal = styled(Modal)`
}
.icon {
background-image: url(/assets/buttons/cross_photon.png);
background-image: url(assets/buttons/cross_photon.png);
}
.plus {
background-image: url(/assets/buttons/post_expand_plus_photon.png);
background-image: url(assets/buttons/post_expand_plus_photon.png);
}
.minus {
background-image: url(/assets/buttons/post_expand_minus_photon.png);
background-image: url(assets/buttons/post_expand_minus_photon.png);
}
.all-button {
+15 -15
View File
@@ -45,7 +45,7 @@ export const ReplyFormLink = styled.div`
case 'Yotsuba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -66,7 +66,7 @@ export const ReplyFormLink = styled.div`
case 'Yotsuba-B':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c !important;
border-radius: 3px 3px 3px 3px;
@@ -86,7 +86,7 @@ export const ReplyFormLink = styled.div`
case 'Futaba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -107,7 +107,7 @@ export const ReplyFormLink = styled.div`
case 'Burichan':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c;
border-radius: 3px 3px 3px 3px;
@@ -129,7 +129,7 @@ export const ReplyFormLink = styled.div`
case 'Tomorrow':
return `.btn-wrap {
background-color: #1b1c1e;
background-image: url(/assets/buttonfade-dark.png);
background-image: url(assets/buttonfade-dark.png);
border: 1px solid #282a2e;
color: #707070;
border-radius: 3px 3px 3px 3px;
@@ -399,7 +399,7 @@ export const TopBar = styled.div`
case 'Yotsuba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -420,7 +420,7 @@ export const TopBar = styled.div`
case 'Yotsuba-B':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c !important;
border-radius: 3px 3px 3px 3px;
@@ -440,7 +440,7 @@ export const TopBar = styled.div`
case 'Futaba':
return `.btn-wrap {
background-color: #f0e0d6;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
border: 1px solid #c0a69d;
color: #800;
border-radius: 3px 3px 3px 3px;
@@ -461,7 +461,7 @@ export const TopBar = styled.div`
case 'Burichan':
return `.btn-wrap {
background-color: #d6daf0;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
border: 1px solid #b7c5d9;
color: #34345c;
border-radius: 3px 3px 3px 3px;
@@ -483,7 +483,7 @@ export const TopBar = styled.div`
case 'Tomorrow':
return `.btn-wrap {
background-color: #1b1c1e;
background-image: url(/assets/buttonfade-dark.png);
background-image: url(assets/buttonfade-dark.png);
border: 1px solid #282a2e;
color: #707070;
border-radius: 3px 3px 3px 3px;
@@ -2160,7 +2160,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #f0e0d6;
border: 1px solid #c0a69d;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -2277,7 +2277,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #d6daf0;
border: 1px solid #b7c5d9;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -2390,7 +2390,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #f0e0d6;
border: 1px solid #c0a69d;
background-image: url(/assets/buttonfade.png);
background-image: url(assets/buttonfade.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -2506,7 +2506,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: #d6daf0;
border: 1px solid #b7c5d9;
background-image: url(/assets/buttonfade-blue.png);
background-image: url(assets/buttonfade-blue.png);
background-repeat: repeat-x;
text-decoration: none;
}
@@ -2623,7 +2623,7 @@ export const BoardForm = styled.div`
font-weight: 700;
background-color: rgb(27,28,30);
border: 1px solid #282A2E;
background-image: url(/assets/buttonfade-dark.png);
background-image: url(assets/buttonfade-dark.png);
background-repeat: repeat-x;
text-decoration: none;
}
+2 -2
View File
@@ -464,7 +464,7 @@ const Board = () => {
itemContent={(index, thread) => {
const { displayedReplies, omittedCount } = filteredRepliesByThread[thread.cid] || {};
const commentMediaInfo = getCommentMediaInfo(thread);
const fallbackImgUrl = "/assets/filedeleted-res.gif";
const fallbackImgUrl = "assets/filedeleted-res.gif";
return (
<Fragment key={`fr-${index}`}>
<div key={`t-${index}`} className="thread">
@@ -611,7 +611,7 @@ const Board = () => {
</span>
{displayedReplies?.map((reply, index) => {
const replyMediaInfo = getCommentMediaInfo(reply);
const fallbackImgUrl = "/assets/filedeleted-res.gif";
const fallbackImgUrl = "assets/filedeleted-res.gif";
const shortParentCid = findShortParentCid(reply.parentCid, selectedFeed);
return (
<div key={`rc-${index}`} className="reply-container">
+1 -1
View File
@@ -379,7 +379,7 @@ const Catalog = () => {
>
{feed.map((thread, index) => {
const commentMediaInfo = getCommentMediaInfo(thread);
const fallbackImgUrl = "/assets/filedeleted-res.gif";
const fallbackImgUrl = "assets/filedeleted-res.gif";
return (
<Link style={{all: "unset", cursor: "pointer"}} key={`link-${index}`} to={`/p/${selectedAddress}/c/${thread.cid}`} onClick={() => setSelectedThread(thread.cid)}>
<div key={`thread-${index}`} className="thread">
+3 -3
View File
@@ -22,7 +22,7 @@ const Home = () => {
// prevent dark mode
useEffect(() => {
setBodyStyle({
background: "#ffe url(/assets/fade.png) top repeat-x",
background: "#ffe url(assets/fade.png) top repeat-x",
color: "maroon",
fontFamily: "Helvetica, Arial, sans-serif"
});
@@ -39,7 +39,7 @@ const Home = () => {
<Header>
<Logo>
<Link to="/">
<img alt="plebchan" src="/assets/logo/logo-transparent.png" />
<img alt="plebchan" src="assets/logo/logo-transparent.png" />
</Link>
</Logo>
</Header>
@@ -92,7 +92,7 @@ const Home = () => {
setSelectedTitle(subplebbit.title);
setSelectedAddress(subplebbit.address);
}} >
<img alt="board logo" src="/assets/plebchan.png" />
<img alt="board logo" src="assets/plebchan.png" />
</Link>
<div className="board-text">
<b>{subplebbit.address}</b>
+3 -3
View File
@@ -12,7 +12,7 @@ const NotFound = ({ setBodyStyle }) => {
useEffect(() => {
setBodyStyle({
background: "#ffe url(/assets/fade.png) top repeat-x",
background: "#ffe url(assets/fade.png) top repeat-x",
color: "maroon",
fontFamily: "Helvetica, Arial, sans-serif"
});
@@ -28,7 +28,7 @@ const NotFound = ({ setBodyStyle }) => {
<Header>
<Logo>
<Link to="/">
<img alt="plebchan" src="/assets/logo/logo-transparent.png" />
<img alt="plebchan" src="assets/logo/logo-transparent.png" />
</Link>
</Logo>
</Header>
@@ -37,7 +37,7 @@ const NotFound = ({ setBodyStyle }) => {
<BoardsTitle>
<h2 style={{textAlign: 'center'}}>404 Not Found</h2>
</BoardsTitle>
<img src="/assets/plebchan-husbando.jpg" alt="plebchan" style={{
<img src="assets/plebchan-husbando.jpg" alt="plebchan" style={{
display: "block",
margin: "auto",
padding: "15px",
+1 -1
View File
@@ -42,7 +42,7 @@ const Pending = () => {
const navigate = useNavigate();
const [commentMediaInfo, setCommentMediaInfo] = useState(null);
const fallbackImgUrl = "/assets/filedeleted-res.gif";
const fallbackImgUrl = "assets/filedeleted-res.gif";
// mobile navbar board select functionality
const handleSelectChange = (event) => {
+2 -2
View File
@@ -60,7 +60,7 @@ const Thread = () => {
const handleClickForm = useClickForm();
const commentMediaInfo = getCommentMediaInfo(comment);
const fallbackImgUrl = "/assets/filedeleted-res.gif";
const fallbackImgUrl = "assets/filedeleted-res.gif";
const [errorMessage, setErrorMessage] = useState(null);
useError(errorMessage, [errorMessage]);
@@ -561,7 +561,7 @@ const Thread = () => {
{comment.state === "fetching-ipns" ? <PostLoader /> : null}
{sortedReplies.map((reply, index) => {
const replyMediaInfo = getCommentMediaInfo(reply);
const fallbackImgUrl = "/assets/filedeleted-res.gif";
const fallbackImgUrl = "assets/filedeleted-res.gif";
const shortParentCid = findShortParentCid(reply.parentCid, comment);
return (
<div key={`pc-${index}`} className="reply-container">
+1 -1
View File
@@ -2,7 +2,7 @@ import { create } from 'zustand';
const useGeneralStore = create((set) => ({
bodyStyle: JSON.parse(localStorage.getItem('bodyStyle')) || {
background: '#ffe url(/assets/fade.png) top repeat-x',
background: '#ffe url(assets/fade.png) top repeat-x',
color: 'maroon',
fontFamily: 'Helvetica, Arial, sans-serif',
},
+3 -3
View File
@@ -8,7 +8,7 @@ const handleStyleChange = (event) => {
switch (event.target.value) {
case "Yotsuba":
const yotsubaBodyStyle = {
background: "#ffe url(/assets/fade.png) top repeat-x",
background: "#ffe url(assets/fade.png) top repeat-x",
color: "maroon",
fontFamily: "Arial, Helvetica, sans-serif"
};
@@ -20,7 +20,7 @@ const handleStyleChange = (event) => {
case "Yotsuba-B":
const yotsubaBBodyStyle = {
background: "#eef2ff url(/assets/fade-blue.png) top center repeat-x",
background: "#eef2ff url(assets/fade-blue.png) top center repeat-x",
color: "#000",
fontFamily: "Arial, Helvetica, sans-serif"
};
@@ -80,7 +80,7 @@ const handleStyleChange = (event) => {
default:
const defaultBodyStyle = {
background: "#ffe url(/assets/fade.png) top repeat-x",
background: "#ffe url(assets/fade.png) top repeat-x",
color: "maroon",
fontFamily: "Arial, Helvetica, sans-serif"
};