Updated SEO
This commit is contained in:
parent
04cd2c9ed2
commit
a99142b9c5
6 changed files with 46 additions and 38 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
|
|
@ -8,20 +8,18 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="%PUBLIC_URL%/media/logo.svg">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="%PUBLIC_URL%/media/logo.svg">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="%PUBLIC_URL%/media/logo.svg">
|
||||
<link rel="mask-icon" href="%PUBLIC_URL%/media/logo.svg" color="#1dd1a1">
|
||||
<meta name="msapplication-TileColor" content="#222f3e">
|
||||
<meta name="theme-color" content="#1dd1a1">
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json"/>
|
||||
<link rel="shortcut icon" type="image/png" href="%PUBLIC_URL%/media/logo.svg"/>
|
||||
<link rel="mask-icon" href="%PUBLIC_URL%/media/logo.svg" color="#1dd1a1"/>
|
||||
<meta name="msapplication-TileColor" content="#222f3e"/>
|
||||
<meta name="theme-color" content="#1dd1a1"/>
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="ProzillaOS">
|
||||
<meta property="og:site_name" content="ProzillaOS">
|
||||
<meta property="og:description" content="ProzillaOS is a web-based operating system inspired by Ubuntu Linux and Windows made with React by Prozilla.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:image" content="%PUBLIC_URL%/media/Banner2.png">
|
||||
<meta property="og:title" content="ProzillaOS"/>
|
||||
<meta property="og:site_name" content="ProzillaOS"/>
|
||||
<meta property="og:description" content="ProzillaOS is a web-based operating system inspired by Ubuntu Linux and Windows made with React by Prozilla."/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:image" content="%PUBLIC_URL%/media/Banner2.png"/>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run ProzillaOS.</noscript>
|
||||
|
|
|
|||
|
|
@ -61,13 +61,13 @@ export function FileExplorer() {
|
|||
return (
|
||||
<div className={styles.Container}>
|
||||
<div className={styles.Header}>
|
||||
<button className={styles["Icon-button"]}>
|
||||
<button title="Back" className={styles["Icon-button"]}>
|
||||
<FontAwesomeIcon icon={faCaretLeft}/>
|
||||
</button>
|
||||
<button className={styles["Icon-button"]}>
|
||||
<button title="Forward" className={styles["Icon-button"]}>
|
||||
<FontAwesomeIcon icon={faCaretRight}/>
|
||||
</button>
|
||||
<button className={styles["Icon-button"]} onClick={() => { changeDirectory(".."); }}>
|
||||
<button title="Up" className={styles["Icon-button"]} onClick={() => { changeDirectory(".."); }}>
|
||||
<FontAwesomeIcon icon={faArrowUp}/>
|
||||
</button>
|
||||
<input
|
||||
|
|
@ -77,35 +77,35 @@ export function FileExplorer() {
|
|||
onChange={onPathChange}
|
||||
onKeyDown={onKeyDown}
|
||||
/>
|
||||
<button className={styles["Icon-button"]}>
|
||||
<FontAwesomeIcon icon={faSearch}/>
|
||||
<button title="Search" className={styles["Icon-button"]}>
|
||||
<FontAwesomeIcon icon={faSearch}/>
|
||||
</button>
|
||||
<button className={styles["Icon-button"]}>
|
||||
<button title="Settings" className={styles["Icon-button"]}>
|
||||
<FontAwesomeIcon icon={faCog}/>
|
||||
</button>
|
||||
</div>
|
||||
<div className={styles.Body}>
|
||||
<div className={styles.Sidebar}>
|
||||
<button className={styles["Nav-button"]} onClick={() => { changeDirectory("~"); }}>
|
||||
<button title="Home" className={styles["Nav-button"]} onClick={() => { changeDirectory("~"); }}>
|
||||
<FontAwesomeIcon icon={faHouse}/>
|
||||
Home
|
||||
</button>
|
||||
<button className={styles["Nav-button"]} onClick={() => { changeDirectory("~/Desktop"); }}>
|
||||
<button title="Desktop" className={styles["Nav-button"]} onClick={() => { changeDirectory("~/Desktop"); }}>
|
||||
<FontAwesomeIcon icon={faDesktop}/>
|
||||
Desktop
|
||||
</button>
|
||||
<button className={styles["Nav-button"]} onClick={() => { changeDirectory("~/Documents"); }}>
|
||||
<button title="Documents" className={styles["Nav-button"]} onClick={() => { changeDirectory("~/Documents"); }}>
|
||||
<FontAwesomeIcon icon={faFileLines}/>
|
||||
Documents
|
||||
</button>
|
||||
<button className={styles["Nav-button"]} onClick={() => { changeDirectory("~/Images"); }}>
|
||||
<button title="Images" className={styles["Nav-button"]} onClick={() => { changeDirectory("~/Images"); }}>
|
||||
<FontAwesomeIcon icon={faImage}/>
|
||||
Images
|
||||
</button>
|
||||
</div>
|
||||
<div className={styles.Main}>
|
||||
{currentDirectory.files.map((file, index) =>
|
||||
<button key={index} className={styles["File-button"]} onClick={(event) => {
|
||||
<button key={index} title={file.id} className={styles["File-button"]} onClick={(event) => {
|
||||
event.preventDefault();
|
||||
windowsManager.openFile(file);
|
||||
}}>
|
||||
|
|
@ -114,7 +114,7 @@ export function FileExplorer() {
|
|||
</button>
|
||||
)}
|
||||
{currentDirectory.subFolders.map(({ name }, index) =>
|
||||
<button key={index} className={styles["Folder-button"]} onClick={() => {
|
||||
<button key={index} title={name} className={styles["Folder-button"]} onClick={() => {
|
||||
changeDirectory(name);
|
||||
}}>
|
||||
<FontAwesomeIcon icon={faFolder}/>
|
||||
|
|
|
|||
|
|
@ -23,9 +23,19 @@ function AppButton({ app }) {
|
|||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [windows]);
|
||||
|
||||
return (<button className={active ? `${styles["App-icon"]} ${styles["Active"]}` : styles["App-icon"]} key={app.id} onClick={() => { windowsManager.open(app.id); }}>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + `/media/applications/icons/${app.id}.svg`}/>
|
||||
</button>);
|
||||
const classNames = [styles["App-icon"]];
|
||||
if (active)
|
||||
classNames.push(styles.Active);
|
||||
|
||||
return (
|
||||
<button
|
||||
className={classNames.join(" ")}
|
||||
onClick={() => { windowsManager.open(app.id); }}
|
||||
title={app.name}
|
||||
>
|
||||
<ReactSVG src={process.env.PUBLIC_URL + `/media/applications/icons/${app.id}.svg`}/>
|
||||
</button>
|
||||
);
|
||||
}
|
||||
|
||||
export function Taskbar() {
|
||||
|
|
@ -40,7 +50,7 @@ export function Taskbar() {
|
|||
return (
|
||||
<div className={styles["Task-bar"]}>
|
||||
<div className={styles["Program-icons"]}>
|
||||
<button>
|
||||
<button title="Search">
|
||||
<FontAwesomeIcon icon={faSearch}/>
|
||||
</button>
|
||||
{ApplicationsManager.APPLICATIONS.map((app) =>
|
||||
|
|
@ -48,16 +58,16 @@ export function Taskbar() {
|
|||
)}
|
||||
</div>
|
||||
<div className={styles["Util-icons"]}>
|
||||
<button>
|
||||
<button title="Battery">
|
||||
<FontAwesomeIcon icon={faBatteryFull}/>
|
||||
</button>
|
||||
<button>
|
||||
<button title="Wifi">
|
||||
<FontAwesomeIcon icon={faWifi}/>
|
||||
</button>
|
||||
<button>
|
||||
<button title="Volume">
|
||||
<FontAwesomeIcon icon={faVolumeHigh}/>
|
||||
</button>
|
||||
<button style={{ userSelect: "none" }}>
|
||||
<button title="Date & Time" style={{ userSelect: "none" }}>
|
||||
{date.toLocaleString("en-US", {
|
||||
hour: "numeric",
|
||||
minute: "numeric",
|
||||
|
|
@ -70,7 +80,7 @@ export function Taskbar() {
|
|||
year: "numeric",
|
||||
})}
|
||||
</button>
|
||||
<button id="desktop-button"/>
|
||||
<button title="View Desktop" id="desktop-button"/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -14,13 +14,13 @@ export function DropdownButton({ label, options }) {
|
|||
return (
|
||||
<OutsideClickListener onOutsideClick={() => { setOpen(false); }}>
|
||||
<div className={styles.Container}>
|
||||
<button className={styles.Button} onClick={() => { setOpen(!open) }}>
|
||||
<button title={label} className={styles.Button} onClick={() => { setOpen(!open) }}>
|
||||
{label}
|
||||
</button>
|
||||
{open && options
|
||||
? (<div className={styles.Dropdown}>
|
||||
{Object.entries(options).map(([label, callback]) =>
|
||||
<button key={label} onClick={() => {
|
||||
<button title={label} key={label} onClick={() => {
|
||||
setOpen(false);
|
||||
callback();
|
||||
}}>
|
||||
|
|
|
|||
|
|
@ -81,13 +81,13 @@ export function Window({ id, app, size, position, focused = false, onInteract, o
|
|||
<div className={`${styles.Header} Handle`}>
|
||||
<ReactSVG className={styles["Window-icon"]} src={process.env.PUBLIC_URL + `/media/applications/icons/${app.id}.svg`}/>
|
||||
<p>{title}</p>
|
||||
<button onClick={() => setMinimized(!minimized)}>
|
||||
<button title="Minimize" onClick={() => setMinimized(!minimized)}>
|
||||
<FontAwesomeIcon icon={faMinus}/>
|
||||
</button>
|
||||
<button onClick={() => setMaximized(!maximized)}>
|
||||
<button title="Maximize" onClick={() => setMaximized(!maximized)}>
|
||||
<FontAwesomeIcon icon={faSquare}/>
|
||||
</button>
|
||||
<button onClick={close}>
|
||||
<button title="Close" onClick={close}>
|
||||
<FontAwesomeIcon icon={faXmark}/>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue