wip
This commit is contained in:
parent
7dbdc345da
commit
c4993f6540
23 changed files with 458 additions and 102 deletions
|
@ -26,13 +26,10 @@ const config: Config = {
|
||||||
src: 'img/logo.svg',
|
src: 'img/logo.svg',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
{to: 'blog', label: 'Проекты', position: 'left'},
|
||||||
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',
|
href: 'https://t.me/robossembler_ru',
|
||||||
label: 'Telegram',
|
label: 'Telegram',
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
"tailwind-merge": "^2.6.0",
|
"tailwind-merge": "^2.6.0",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
|
"@tailwindcss/typography": "^0.5.10",
|
||||||
"typescript": "~5.6.2"
|
"typescript": "~5.6.2"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
|
|
40
src/components/Button/index.tsx
Normal file
40
src/components/Button/index.tsx
Normal file
|
@ -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 (
|
||||||
|
<Link {...rest} className={computedClassName}>
|
||||||
|
{children}
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
{...(rest as unknown as React.ButtonHTMLAttributes<HTMLButtonElement>)}
|
||||||
|
className={computedClassName}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
}
|
49
src/components/Goals/index.tsx
Normal file
49
src/components/Goals/index.tsx
Normal file
|
@ -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<SVGProps<SVGSVGElement>>;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
function Goal({ icon: Icon, title, description }: GoalProps) {
|
||||||
|
return (
|
||||||
|
<div className="bg-white dark:bg-blue-900 p-6">
|
||||||
|
<Icon className="w-12 mb-4" aria-hidden />
|
||||||
|
<h3 className="text-xl mb-2">{title}</h3>
|
||||||
|
<p className="text-gray-600 dark:text-gray-500">{description}</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Goals() {
|
||||||
|
return (
|
||||||
|
<section className="py-6 md:py-12 mx-auto container px-4">
|
||||||
|
<h2 className="text-center text-3xl md:text-5xl font-bold mb-6 md:mb-12">
|
||||||
|
Наши принципы
|
||||||
|
</h2>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
|
<Goal
|
||||||
|
icon={ExpandIcon}
|
||||||
|
title="Open Source"
|
||||||
|
description="Робосборщик выстраивает мост между инженерами, потребителями и производителями, позволяя добиться оптимального результата."
|
||||||
|
/>
|
||||||
|
<Goal
|
||||||
|
icon={DotsIcon}
|
||||||
|
title="Полная автоматизация"
|
||||||
|
description="Робосборщик выстраивает мост между инженерами, потребителями и производителями, позволяя добиться оптимального результата."
|
||||||
|
/>
|
||||||
|
<Goal
|
||||||
|
icon={ScaleIcon}
|
||||||
|
title="Децентрализация"
|
||||||
|
description="Робосборщик выстраивает мост между инженерами, потребителями и производителями, позволяя добиться оптимального результата."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
20
src/components/Headline/index.tsx
Normal file
20
src/components/Headline/index.tsx
Normal file
|
@ -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 (
|
||||||
|
<h1
|
||||||
|
className={clsx(
|
||||||
|
"text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold leading-normal lg:leading-tight tracking-wider text-center px-4",
|
||||||
|
className,
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</h1>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/Hero/index.tsx
Normal file
23
src/components/Hero/index.tsx
Normal file
|
@ -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 (
|
||||||
|
<header className="flex flex-col items-center py-10 md:py-20 px-6 md:px-16 mx-auto">
|
||||||
|
<PatternBg />
|
||||||
|
<Headline className="sm:max-w-2xl md:max-w-3xl lg:max-w-4xl">
|
||||||
|
Отворённые роботы
|
||||||
|
</Headline>
|
||||||
|
<p className="my-6 text-xl sm:max-w-lg md:max-w-xl lg:max-w-2xl text-center text-gray-600 dark:text-gray-500">
|
||||||
|
Мы в Robossembler создаём набор открытых технологий, чтобы самая современная робототехника стала доступной каждому
|
||||||
|
</p>
|
||||||
|
<div className="flex gap-4 pt-6">
|
||||||
|
<Button variant="primary" href="/docs/intro/install">
|
||||||
|
Проекты
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
);
|
||||||
|
}
|
11
src/components/PatternBg/index.tsx
Normal file
11
src/components/PatternBg/index.tsx
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
import React from "react";
|
||||||
|
import styles from "./styles.module.css";
|
||||||
|
|
||||||
|
export default function PatternBg() {
|
||||||
|
return (
|
||||||
|
<div className="absolute top-0 left-0 right-0 h-[600px] -z-10" aria-hidden>
|
||||||
|
<div className="absolute inset-0 z-10 bg-gradient-to-b from-transparent to-gray-50 dark:to-blue-950" />
|
||||||
|
<div className={`${styles.bg} w-full h-full opacity-5`} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
3
src/components/PatternBg/styles.module.css
Normal file
3
src/components/PatternBg/styles.module.css
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
.bg {
|
||||||
|
background-image: url('data:image/webp;base64,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');
|
||||||
|
}
|
86
src/components/Projects/index.tsx
Normal file
86
src/components/Projects/index.tsx
Normal file
|
@ -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 (
|
||||||
|
<div className={clsx('col col--6')}>
|
||||||
|
{imgUrl && (
|
||||||
|
<div>
|
||||||
|
<img src={imgUrl} alt={title} />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<h1>{title}</h1>
|
||||||
|
<p>{description}</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Home() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h2 className="text-center text-3xl md:text-5xl font-bold mb-6 md:mb-12">
|
||||||
|
Проекты
|
||||||
|
</h2>
|
||||||
|
<main>
|
||||||
|
{features && features.length > 0 && (
|
||||||
|
<section>
|
||||||
|
<div className="container">
|
||||||
|
<div className="row">
|
||||||
|
{features.map((props, idx) => (
|
||||||
|
<Feature key={idx} {...props} />
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
)}
|
||||||
|
</main>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
93
src/fonts/LICENSE
Normal file
93
src/fonts/LICENSE
Normal file
|
@ -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.
|
BIN
src/fonts/dmsans-bold-latin-ext.woff2
Normal file
BIN
src/fonts/dmsans-bold-latin-ext.woff2
Normal file
Binary file not shown.
BIN
src/fonts/dmsans-bold-latin.woff2
Normal file
BIN
src/fonts/dmsans-bold-latin.woff2
Normal file
Binary file not shown.
BIN
src/fonts/dmsans-latin-ext.woff2
Normal file
BIN
src/fonts/dmsans-latin-ext.woff2
Normal file
Binary file not shown.
BIN
src/fonts/dmsans-latin.woff2
Normal file
BIN
src/fonts/dmsans-latin.woff2
Normal file
Binary file not shown.
14
src/icons/LICENSE
Normal file
14
src/icons/LICENSE
Normal file
|
@ -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
|
4
src/icons/dots.svg
Normal file
4
src/icons/dots.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 48 48">
|
||||||
|
<path class="fill-brand-300" d="M19.75 18.25C20.917 19.417 22.333 20 24 20c1.667 0 3.083-.583 4.25-1.75C29.417 17.083 30 15.667 30 14c0-1.667-.583-3.083-1.75-4.25C27.083 8.583 25.667 8 24 8c-1.667 0-3.083.583-4.25 1.75C18.583 10.917 18 12.333 18 14c0 1.667.583 3.083 1.75 4.25Z"/>
|
||||||
|
<path class="fill-brand-600" d="M12 40c-1.667 0-3.083-.583-4.25-1.75C6.583 37.083 6 35.667 6 34c0-1.667.583-3.083 1.75-4.25C8.917 28.583 10.333 28 12 28c1.667 0 3.083.583 4.25 1.75C17.417 30.917 18 32.333 18 34c0 1.667-.583 3.083-1.75 4.25C15.083 39.417 13.667 40 12 40Zm24 0c-1.667 0-3.083-.583-4.25-1.75C30.583 37.083 30 35.667 30 34c0-1.667.583-3.083 1.75-4.25C32.917 28.583 34.333 28 36 28c1.667 0 3.083.583 4.25 1.75C41.417 30.917 42 32.333 42 34c0 1.667-.583 3.083-1.75 4.25C39.083 39.417 37.667 40 36 40Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 876 B |
4
src/icons/expand.svg
Normal file
4
src/icons/expand.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M34 14V22H38V10H26V14H34Z" class="fill-brand-600"/>
|
||||||
|
<path d="M10 38V26H14V34H22V38H10Z" class="fill-brand-300"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 202 B |
4
src/icons/humidity.svg
Normal file
4
src/icons/humidity.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 48 48">
|
||||||
|
<path class="fill-brand-300" d="m16.441 18.296 5.568 5.568-5.568 5.567a7.873 7.873 0 1 1 0-11.135Z"/>
|
||||||
|
<path class="fill-brand-600" d="m29.703 18.296-5.567 5.568 5.567 5.567a7.874 7.874 0 1 0 0-11.135Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 284 B |
5
src/icons/layers.svg
Normal file
5
src/icons/layers.svg
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 48 48">
|
||||||
|
<path class="fill-brand-200" d="m33.645 24.99-9.14 6.444-9.14-6.444 9.14-6.433L33.645 25v-.01Z"/>
|
||||||
|
<path class="fill-brand-300" d="M15.364 25 10 28.778 24.505 39l14.504-10.222L33.645 25l-9.14 6.443L15.365 25Z"/>
|
||||||
|
<path class="fill-brand-600" d="M33.636 25 39 21.222 24.505 11 10 21.222 15.364 25l9.14-6.443L33.646 25h-.01Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 404 B |
5
src/icons/scale.svg
Normal file
5
src/icons/scale.svg
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 48 48">
|
||||||
|
<path class="fill-brand-600" d="M5.75 21.25C6.917 22.417 8.333 23 10 23c1.667 0 3.083-.583 4.25-1.75C15.417 20.083 16 18.667 16 17c0-1.667-.583-3.083-1.75-4.25C13.083 11.583 11.667 11 10 11c-1.667 0-3.083.583-4.25 1.75C4.583 13.917 4 15.333 4 17c0 1.667.583 3.083 1.75 4.25Z"/>
|
||||||
|
<path class="fill-brand-300" d="M33.75 21.25C34.917 22.417 36.333 23 38 23c1.667 0 3.083-.583 4.25-1.75C43.417 20.083 44 18.667 44 17c0-1.667-.583-3.083-1.75-4.25C41.083 11.583 39.667 11 38 11c-1.667 0-3.083.583-4.25 1.75C32.583 13.917 32 15.333 32 17c0 1.667.583 3.083 1.75 4.25Z"/>
|
||||||
|
<path class="fill-brand-200" d="M6 27h37v5H6zM30 41a6 6 0 1 0-12 0h12Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 716 B |
|
@ -1,103 +1,27 @@
|
||||||
import clsx from 'clsx';
|
import React from "react";
|
||||||
import Link from '@docusaurus/Link';
|
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 useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
||||||
import Layout from '@theme/Layout';
|
import Goals from "../components/Goals";
|
||||||
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 (
|
|
||||||
<div className={clsx('col col--6', styles.feature)}>
|
|
||||||
{imgUrl && (
|
|
||||||
<div>
|
|
||||||
<img className={styles.featureImage} src={imgUrl} alt={title} />
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
<h1>{title}</h1>
|
|
||||||
<p>{description}</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
const {siteConfig} = useDocusaurusContext();
|
const {siteConfig} = useDocusaurusContext();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout
|
<Layout
|
||||||
title={siteConfig.title}
|
title={siteConfig.title}
|
||||||
description="Промышленная робототехника с открытыми конструкторской документацией и исходным кодом">
|
description="Промышленная робототехника с открытыми конструкторской документацией и исходным кодом">
|
||||||
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
<Hero />
|
||||||
<div className="container">
|
<Goals />
|
||||||
<h1 className="hero__title">{siteConfig.title}</h1>
|
<Projects />
|
||||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
{/* <Hero />
|
||||||
<div className={styles.buttons}>
|
<HowToContribute />
|
||||||
<Link
|
<FAQ />
|
||||||
className={clsx(
|
<Supporters /> */}
|
||||||
'button button--outline button--secondary button--lg',
|
|
||||||
styles.getStarted,
|
|
||||||
)}
|
|
||||||
to={useBaseUrl('docs/')}>
|
|
||||||
Обзор репозиториев
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<main>
|
|
||||||
{features && features.length > 0 && (
|
|
||||||
<section className={styles.features}>
|
|
||||||
<div className="container">
|
|
||||||
<div className="row">
|
|
||||||
{features.map((props, idx) => (
|
|
||||||
<Feature key={idx} {...props} />
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
)}
|
|
||||||
</main>
|
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ module.exports = {
|
||||||
container: false,
|
container: false,
|
||||||
},
|
},
|
||||||
darkMode: ["class", '[data-theme="dark"]'],
|
darkMode: ["class", '[data-theme="dark"]'],
|
||||||
content: ["./src/**/*.{jsx,tsx,html}"],
|
content: ["./src/**/*.{js,jsx,ts,tsx,svg}"],
|
||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
|
@ -22,8 +22,48 @@ module.exports = {
|
||||||
sm: "0px",
|
sm: "0px",
|
||||||
lg: "997px",
|
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"),
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
33
yarn.lock
33
yarn.lock
|
@ -2362,6 +2362,16 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
defer-to-connect "^2.0.1"
|
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":
|
"@trysound/sax@0.2.0":
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||||
|
@ -5970,16 +5980,31 @@ locate-path@^7.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
p-locate "^6.0.0"
|
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:
|
lodash.debounce@^4.0.8:
|
||||||
version "4.0.8"
|
version "4.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
||||||
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
|
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:
|
lodash.memoize@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
|
||||||
integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
|
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:
|
lodash.uniq@^4.5.0:
|
||||||
version "4.5.0"
|
version "4.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
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:
|
dependencies:
|
||||||
postcss-selector-parser "^7.0.0"
|
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:
|
postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
|
||||||
version "6.0.15"
|
version "6.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535"
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue