diff --git a/src/routes/docs.tsx b/src/routes/docs.tsx index fc3485eb..22d0ff79 100644 --- a/src/routes/docs.tsx +++ b/src/routes/docs.tsx @@ -1,14 +1,22 @@ import type { Component } from 'solid-js'; +import { texts } from '../dynamic.json'; /** * The documents page. * @returns The component. */ const Docs: Component = () => ( -
-

Docs page

-

TODO: Add the content here.

-
+ <> +

Getting started

+
+
+ ); export default Docs; diff --git a/src/routes/explore.tsx b/src/routes/explore.tsx index 3e8063d1..1d53a0e5 100644 --- a/src/routes/explore.tsx +++ b/src/routes/explore.tsx @@ -1,14 +1,31 @@ import type { Component } from 'solid-js'; +import { For } from 'solid-js'; +import { IconItem } from '../components/atoms/IconItem.js'; +import { icons } from '../dynamic.json'; /** * The explore page. * @returns The component. */ const Explore: Component = () => ( -
-

Explore page

-

TODO: Add the content here.

-
+ <> +
+

Icons explorer

+

+ The Launchpad Icons provide  + {icons.length} icons. The  + + highlighted + +  icons are those added in the latest version. +

+
+ Loading...
}> + {(name) => } + + +
+ ); export default Explore; diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 8f72d863..8a730653 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -1,10 +1,78 @@ -import type { Component, JSX } from 'solid-js'; +import type { Component } from 'solid-js'; +import { FeatureDetail } from '../components/atoms/FeatureDetail.js'; +import { Hero } from '../components/atoms/Hero.js'; +import { WideAnchorButton } from '../components/atoms/WideAnchorButton.js'; +import { Features } from '../components/molecules/Features.js'; +import { TextAnchor } from '../components/molecules/TextAnchor.js'; +import { iconsToDo, vccUrl, vpmUrl } from '../constants.json'; +import { icons } from '../dynamic.json'; -const Index: Component = (): JSX.Element => ( -
-

Top page

-

TODO: Add the content here.

-
+/** The URL to add to VCC. */ +const encodedVccUrl = `${vccUrl}${encodeURIComponent(vpmUrl)}`; + +/** The number of icons. */ +const iconsLength = icons.length; + +/** + * The index page. + * @returns The component. + */ +const Index: Component = () => ( + <> + + + {iconsLength} SVG icons} + image="images/illustrator.png" + > +

+ The Launchpad Icons provide {iconsLength}  icons that look  + like VRChat icons, and we plan to + have more than {iconsToDo} in the future. +

+

+ All included icons have been redesigned in Adobe Illustrator and + exported as SVG. Since they are in + vector format, they can be displayed beautifully even when significantly + enlarged. +

+
+ +

+ Launchpad Icons don't contain any logic and provide  + raw SVG files. It means that they can + be easily adapted for use in  + general Unity apps, not just VRChat. +

+

+ Launchpad Icons bundles them only as a unitypackage to import + via VRChat Creator Companion, but we plan to offer it as an NPM package + for ease of use on the web. +

+
+ +

+ Launchpad Icons is provided FREE of + charge under the  + + Creative Commons 4.0 International ( + BY-NC) license + + . You can use it without restriction for non-commercial purposes, + provided the copyright notice is displayed. +

+

+ We also release it as open-source software. Welcome your  + + contributions + +  to make it better! +

+
+
+ Getting started +
+ ); export default Index; diff --git a/src/routes/pricing.tsx b/src/routes/pricing.tsx index f1c63d13..a01993d8 100644 --- a/src/routes/pricing.tsx +++ b/src/routes/pricing.tsx @@ -1,14 +1,42 @@ import type { Component } from 'solid-js'; +import { PricingCard } from '../components/atoms/PricingCard.js'; +import { texts } from '../dynamic.json'; /** * The explore page. * @returns The component. */ const Pricing: Component = () => ( -
-

Pricing page

-

TODO: Add the content here.

-
+
+

Pricing

+
+ + + +
+
+
); export default Pricing;