diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 26e4a74..6ed984b 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -26,13 +26,10 @@ const config: Config = { src: 'img/logo.svg', }, items: [ - { - to: 'docs/', - activeBasePath: 'docs', - label: 'Документация', - position: 'left', - }, + {to: 'blog', label: 'Проекты', position: 'left'}, {to: 'blog', label: 'Новости', position: 'left'}, + {to: 'blog', label: 'Команда', position: 'left'}, + {to: 'blog', label: 'Как помочь', position: 'left'}, { href: 'https://t.me/robossembler_ru', label: 'Telegram', diff --git a/package.json b/package.json index 39bec48..a20e4fd 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "tailwind-merge": "^2.6.0", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", + "@tailwindcss/typography": "^0.5.10", "typescript": "~5.6.2" }, "browserslist": { diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx new file mode 100644 index 0000000..d3ec151 --- /dev/null +++ b/src/components/Button/index.tsx @@ -0,0 +1,40 @@ +import React from "react"; +import clsx from "clsx"; +import Link, { Props } from "@docusaurus/Link"; + +type ButtonProps = Props & { + variant: "primary" | "secondary"; +}; + +export default function Button({ + children, + variant, + className, + ...rest +}: ButtonProps) { + const computedClassName = clsx( + "border font-bold h-12 px-6 flex items-center hover:no-underline transition-colors", + variant === "primary" && + "bg-brand-500 text-gray-900 hover:bg-brand-600 border-brand-500 hover:border-brand-600 hover:text-gray-900", + variant === "secondary" && + "border-gray-200 dark:border-gray-800 text-gray-900 dark:text-gray-50 bg-transparent hover:border-gray-900 dark:hover:border-gray-50 hover:text-gray-900 dark:hover:text-gray-50 aria-selected:border-gray-900 dark:aria-selected:border-gray-50", + className, + ); + + if ("href" in rest) { + return ( + + {children} + + ); + } + + return ( + )} + className={computedClassName} + > + {children} + + ); +} diff --git a/src/components/Goals/index.tsx b/src/components/Goals/index.tsx new file mode 100644 index 0000000..5b2d099 --- /dev/null +++ b/src/components/Goals/index.tsx @@ -0,0 +1,49 @@ +import React, { ComponentType, SVGProps } from "react"; +import ExpandIcon from "../../icons/expand.svg"; +import DotsIcon from "../../icons/dots.svg"; +import ScaleIcon from "../../icons/scale.svg"; +import LayersIcon from "../../icons/layers.svg"; +import HumidityIcon from "../../icons/humidity.svg"; + +type GoalProps = { + icon: ComponentType>; + title: string; + description: string; +}; + +function Goal({ icon: Icon, title, description }: GoalProps) { + return ( + + + {title} + {description} + + ); +} + +export default function Goals() { + return ( + + + Наши принципы + + + + + + + + ); +} diff --git a/src/components/Headline/index.tsx b/src/components/Headline/index.tsx new file mode 100644 index 0000000..b3905e0 --- /dev/null +++ b/src/components/Headline/index.tsx @@ -0,0 +1,20 @@ +import clsx from "clsx"; +import React from "react"; + +type HeadlineProps = { + children: React.ReactNode; + className?: string; +}; + +export default function Headline({ children, className }: HeadlineProps) { + return ( + + {children} + + ); +} diff --git a/src/components/Hero/index.tsx b/src/components/Hero/index.tsx new file mode 100644 index 0000000..4ea78ba --- /dev/null +++ b/src/components/Hero/index.tsx @@ -0,0 +1,23 @@ +import React from "react"; +import Button from "../Button"; +import PatternBg from "../PatternBg"; +import Headline from "../Headline"; + +export default function Hero() { + return ( + + + + Отворённые роботы + + + Мы в Robossembler создаём набор открытых технологий, чтобы самая современная робототехника стала доступной каждому + + + + Проекты + + + + ); +} diff --git a/src/components/PatternBg/index.tsx b/src/components/PatternBg/index.tsx new file mode 100644 index 0000000..876db1a --- /dev/null +++ b/src/components/PatternBg/index.tsx @@ -0,0 +1,11 @@ +import React from "react"; +import styles from "./styles.module.css"; + +export default function PatternBg() { + return ( + + + + + ); +} diff --git a/src/components/PatternBg/styles.module.css b/src/components/PatternBg/styles.module.css new file mode 100644 index 0000000..49fec90 --- /dev/null +++ b/src/components/PatternBg/styles.module.css @@ -0,0 +1,3 @@ +.bg { + background-image: url('data:image/webp;base64,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'); +} diff --git a/src/components/Projects/index.tsx b/src/components/Projects/index.tsx new file mode 100644 index 0000000..a876b23 --- /dev/null +++ b/src/components/Projects/index.tsx @@ -0,0 +1,86 @@ +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +// import styles from './index.module.css'; + +const features = [ + { + title: 'Сервопривод', + imageUrl: 'img/servo-reducer-assembled.jpg', + description: ( + <> + Сервопривод собственной разработки с оригинальным контроллером, outrunner-двигателем и прецессирующим редуктором. Конструкция привода оптимизирована для простой сборки с минимальным количеством комплектующих. Большая часть деталей может быть изготовлена на 3D-принтере, включая статор. + > + ), + repourl: 'https://gitlab.com/robossembler/servo', + }, + { + title: 'Робот-манипулятор', + imageUrl: 'img/robossembler-arm.jpg', + description: ( + <> + Реконфигурируемый шести-осевой робот-манипулятор без металлического крепежа с симметричным стыковочным интерфейсом. Количество компонентов изделия сведено к минимуму – около 100 сборочных деталей. Дизайн подразумевает автоматическую сборку – в перспективе такие роботы смогут собирать себя сами. + > + ), + repourl: 'https://gitlab.com/robossembler/roboarm-diy-version', + }, + { + title: 'Станок намотки', + imageUrl: 'img/winder.jpg', + description: ( + <> + Намоточная машина для автоматического производства статоров/роторов. Программа намотки генерируется автоматически, исходя из параметров двигателя, что позволяет использовать станок для разных конфигураций малогабаритных электродвигателей. Большинство деталей станка могут быть изготовлены на 3D-принтере. + > + ), + repourl: 'https://gitlab.com/robossembler/cnc/motor-wire-winder', + }, + { + title: 'Фреймворк Робосборщик', + imageUrl: 'img/webservice.jpg', + description: ( + <> + Программный комплекс для программирования и обучения роботов на базе современных технологий робототехники: ROS 2 Jazzy, Lifecycle Nodes, Behavior Tree, + > + ), + repourl: 'https://gitlab.com/robossembler/robossembler-ros2', + }, +]; + +function Feature({ imageUrl, title, description }) { + const imgUrl = useBaseUrl(imageUrl); + return ( + + {imgUrl && ( + + + + )} + {title} + {description} + + ); +} + +export default function Home() { + return ( + + + Проекты + + + {features && features.length > 0 && ( + + + + {features.map((props, idx) => ( + + ))} + + + + )} + + + + ); +} \ No newline at end of file diff --git a/src/fonts/LICENSE b/src/fonts/LICENSE new file mode 100644 index 0000000..14e8d9a --- /dev/null +++ b/src/fonts/LICENSE @@ -0,0 +1,93 @@ +Copyright 2014 The DM Sans Project Authors (https://github.com/googlefonts/dm-fonts) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/fonts/dmsans-bold-latin-ext.woff2 b/src/fonts/dmsans-bold-latin-ext.woff2 new file mode 100644 index 0000000..a9d2009 Binary files /dev/null and b/src/fonts/dmsans-bold-latin-ext.woff2 differ diff --git a/src/fonts/dmsans-bold-latin.woff2 b/src/fonts/dmsans-bold-latin.woff2 new file mode 100644 index 0000000..7db8073 Binary files /dev/null and b/src/fonts/dmsans-bold-latin.woff2 differ diff --git a/src/fonts/dmsans-latin-ext.woff2 b/src/fonts/dmsans-latin-ext.woff2 new file mode 100644 index 0000000..a9d2009 Binary files /dev/null and b/src/fonts/dmsans-latin-ext.woff2 differ diff --git a/src/fonts/dmsans-latin.woff2 b/src/fonts/dmsans-latin.woff2 new file mode 100644 index 0000000..7db8073 Binary files /dev/null and b/src/fonts/dmsans-latin.woff2 differ diff --git a/src/icons/LICENSE b/src/icons/LICENSE new file mode 100644 index 0000000..5c6ca01 --- /dev/null +++ b/src/icons/LICENSE @@ -0,0 +1,14 @@ +Copyright © Nucleo + +Version 1.3, January 3, 2024 + +Nucleo Icons + +https://nucleoapp.com/ + +- Redistribution of icons is prohibited. +- Icons are restricted for use only within the product they are bundled with. + +For more details: + +https://nucleoapp.com/license diff --git a/src/icons/dots.svg b/src/icons/dots.svg new file mode 100644 index 0000000..bcc7341 --- /dev/null +++ b/src/icons/dots.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/icons/expand.svg b/src/icons/expand.svg new file mode 100644 index 0000000..d07d2ac --- /dev/null +++ b/src/icons/expand.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/icons/humidity.svg b/src/icons/humidity.svg new file mode 100644 index 0000000..e949bc6 --- /dev/null +++ b/src/icons/humidity.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/icons/layers.svg b/src/icons/layers.svg new file mode 100644 index 0000000..7eaed18 --- /dev/null +++ b/src/icons/layers.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/icons/scale.svg b/src/icons/scale.svg new file mode 100644 index 0000000..fc51967 --- /dev/null +++ b/src/icons/scale.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 66f5fd6..fc62e5a 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,103 +1,27 @@ -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; +import React from "react"; +import Layout from "@theme/Layout"; +import Hero from "../components/Hero"; +import Projects from "../components/Projects"; +// import Supporters from "../components/Supporters"; +// import FAQ from "../components/FAQ"; +// import HowToContribute from "../components/HowToContribute"; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Layout from '@theme/Layout'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import styles from './index.module.css'; - -const features = [ - { - title: 'Сервопривод', - imageUrl: 'img/servo-reducer-assembled.jpg', - description: ( - <> - Сервопривод собственной разработки с оригинальным контроллером, outrunner-двигателем и прецессирующим редуктором. Конструкция привода оптимизирована для простой сборки с минимальным количеством комплектующих. Большая часть деталей может быть изготовлена на 3D-принтере, включая статор. - > - ), - repourl: 'https://gitlab.com/robossembler/servo', - }, - { - title: 'Робот-манипулятор', - imageUrl: 'img/robossembler-arm.jpg', - description: ( - <> - Реконфигурируемый шести-осевой робот-манипулятор без металлического крепежа с симметричным стыковочным интерфейсом. Количество компонентов изделия сведено к минимуму – около 100 сборочных деталей. Дизайн подразумевает автоматическую сборку – в перспективе такие роботы смогут собирать себя сами. - > - ), - repourl: 'https://gitlab.com/robossembler/roboarm-diy-version', - }, - { - title: 'Станок намотки', - imageUrl: 'img/winder.jpg', - description: ( - <> - Намоточная машина для автоматического производства статоров/роторов. Программа намотки генерируется автоматически, исходя из параметров двигателя, что позволяет использовать станок для разных конфигураций малогабаритных электродвигателей. Большинство деталей станка могут быть изготовлены на 3D-принтере. - > - ), - repourl: 'https://gitlab.com/robossembler/cnc/motor-wire-winder', - }, - { - title: 'Фреймворк Робосборщик', - imageUrl: 'img/webservice.jpg', - description: ( - <> - Программный комплекс для программирования и обучения роботов на базе современных технологий робототехники: ROS 2 Jazzy, Lifecycle Nodes, Behavior Tree, - > - ), - repourl: 'https://gitlab.com/robossembler/robossembler-ros2', - }, -]; - -function Feature({ imageUrl, title, description }) { - const imgUrl = useBaseUrl(imageUrl); - return ( - - {imgUrl && ( - - - - )} - {title} - {description} - - ); -} +import Goals from "../components/Goals"; export default function Home() { const {siteConfig} = useDocusaurusContext(); + return ( - - - {siteConfig.title} - {siteConfig.tagline} - - - Обзор репозиториев - - - - - - {features && features.length > 0 && ( - - - - {features.map((props, idx) => ( - - ))} - - - - )} - + + + + {/* + + + */} ); -} \ No newline at end of file +} diff --git a/tailwind.config.js b/tailwind.config.js index 72eec4a..df91f19 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -7,7 +7,7 @@ module.exports = { container: false, }, darkMode: ["class", '[data-theme="dark"]'], - content: ["./src/**/*.{jsx,tsx,html}"], + content: ["./src/**/*.{js,jsx,ts,tsx,svg}"], theme: { extend: { fontFamily: { @@ -22,8 +22,48 @@ module.exports = { sm: "0px", lg: "997px", }, - colors: {}, + colors: { + fontSize: { + "5xl": "2.5rem", + }, + brand: { + 900: "#332c05", + 850: "#4d4107", + 800: "#66570a", + 700: "#b29911", + 650: "#e6b600", + 600: "#f0cd14", + 500: "#ffda18", + 400: "#ffe146", + 300: "#ffe974", + 200: "#fff0a3", + 150: "#fff4ba", + 100: "#fff8d1", + 50: "#fffbe8", + }, + gray: { + 950: "#0D0E10", + 900: "#1B1D20", + 850: "#282B31", + 800: "#353A41", + 700: "#505661", + 600: "#6A7382", + 500: "#8590A2", + 400: "#9DA6B5", + 300: "#B6BCC7", + 200: "#CED3DA", + 150: "#DADEE3", + 100: "#E7E9EC", + 50: "#F9F9F9", + }, + blue: { + 950: "#0c192b", + 900: "#14253D", + }, + }, }, }, - plugins: [], + plugins: [ + require("@tailwindcss/typography"), + ], }; diff --git a/yarn.lock b/yarn.lock index c37c090..0c8a2bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2362,6 +2362,16 @@ dependencies: defer-to-connect "^2.0.1" +"@tailwindcss/typography@^0.5.10": + version "0.5.16" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.16.tgz#a926c8f44d5c439b2915e231cad80058850047c6" + integrity sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -5970,16 +5980,31 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -7861,6 +7886,14 @@ postcss-selector-not@^8.0.1: dependencies: postcss-selector-parser "^7.0.0" +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.15" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535"
{description}
+ Мы в Robossembler создаём набор открытых технологий, чтобы самая современная робототехника стала доступной каждому +
{siteConfig.tagline}