45 Commits

Author SHA1 Message Date
Alexandru Popovici 2ceba3fd8d Updated the 'Build for Developers' section (#41)
* Updated the 'Build for Developers' section with the new embeded viewer and code sample

* Updated embedded src
2024-05-09 14:50:29 +01:00
Benjamin Ottensten 93517a51f9 Point CTAs to FE2 (#40) 2024-03-13 14:40:02 +00:00
Matteo Cominetti e6237c5124 feat: adds advancesteel 2023-08-15 08:53:43 +01:00
Matteo Cominetti 764f38563c chore: updates gulp-postcss 2023-08-04 21:31:32 +01:00
Matteo Cominetti 24b3fa239b feat: bump version 2023-08-04 17:44:43 +01:00
Iain Sproat 8a36fb5314 chore(deps): bump gscan to 4.37.1 (#33)
- older version of gscan relied on deprecated versions of node

Co-authored-by: Matteo Cominetti <matteo@speckle.systems>
2023-08-04 17:41:34 +01:00
dependabot[bot] 24a9418751 chore(deps): bump semver from 5.7.1 to 5.7.2 (#31)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-04 17:32:12 +01:00
Iain Sproat dd4a41691c fix(dependency): autoprefixer version was invalid for tailwind (#32)
- tailwind had peer dependency version requirement greater than what we provided in our package.json
- bumps autoprefixer to ^10.4.14
2023-08-04 17:30:16 +01:00
Matteo Cominetti 67dd312a3c feat: updates the community link with an invite (#34) 2023-08-04 17:30:03 +01:00
Iain Sproat 43dec95c16 feat(logo.svg): adds Speckle logo in svg format (#30)
- this will be used by external services, such as BIMI records
2023-07-26 11:17:43 +01:00
Matteo Cominetti f396eb4002 feat: adds navis 2023-06-20 15:24:48 +01:00
Matteo Cominetti 129861444d yarn 2023-05-02 16:58:11 +01:00
Matteo Cominetti 0e65c6af36 update version 2023-05-02 16:57:14 +01:00
Matteo Cominetti 0b47cb9e9a feat: adds gsa 2023-05-02 16:52:49 +01:00
Matteo Cominetti d7182b59e2 feat: adds aurecom logo (replaces grimshaw) 2023-03-13 09:26:39 +01:00
Dimitrie Stefanescu 5364fa8898 feat(connectors): adds arcgis connector to theme files 2022-12-14 19:15:09 +00:00
Dimitrie Stefanescu 0e812f495e Merge pull request #29 from specklesystems/download-page
feat: adds a download page
2022-11-28 18:05:42 +00:00
Dimitrie Stefanescu 9c0fee6d6e feat(theme): adds henning larson and un studio logos 2022-11-27 16:44:34 +00:00
Matteo Cominetti 7fda8990c8 feat: manager image + post footer 2022-10-03 16:46:18 +01:00
Matteo Cominetti ac9c70bb76 version bump 2022-10-03 13:13:56 +01:00
Matteo Cominetti afe7cdf31b feat: adds download script inline 2022-10-03 13:12:44 +01:00
Matteo Cominetti 1f60c9e541 feat: removes more discourse comments 2022-10-03 13:12:27 +01:00
Matteo Cominetti 998614b739 feat: disables discourse comments 2022-10-03 13:04:55 +01:00
Matteo Cominetti 4713d8beab feat: adds a download page 2022-10-02 21:12:51 +01:00
Matteo Cominetti e754ea4453 feat: arup logo instead of wsp one 2022-10-02 12:02:33 +01:00
Matteo Cominetti f0879af37a feat: bumps version 2022-08-29 23:56:56 +01:00
Matteo Cominetti f4c55e74ae feat: new newsletter widget 2022-08-29 23:49:11 +01:00
Matteo Cominetti 234bc1cff0 fix: manager download link 2022-08-29 23:19:38 +01:00
Dimitrie Stefanescu e10e0b1713 feat: small top level menu hacks 2022-07-13 20:12:30 +01:00
Dimitrie Stefanescu b1498e33c8 feat(connectors): adds rest of the bunch 2022-04-13 17:02:04 +01:00
Dimitrie Stefanescu 2b62fe8428 feat(copy): updated copy + discourse integration with @teocomi 2022-04-13 15:50:00 +01:00
Reynold Chan 656bc8af6e feat(tags) added in CSI Products 2022-03-23 23:45:27 -04:00
Dimitrie Stefanescu 99285c63b2 feat(tags): adds teklastructures 2022-02-23 20:13:47 +00:00
Dimitrie Stefanescu f418908684 fix: closes https://github.com/specklesystems/admin/issues/211 2022-01-21 20:25:12 +00:00
Dimitrie Stefanescu 0291bec539 feat: closes #25 2022-01-21 19:39:27 +00:00
Matteo Cominetti 160680bf7b Merge branch 'main' of github.com:specklesystems/ghost-theme 2021-11-30 13:49:22 +00:00
Matteo Cominetti 7953d72caf feat: updates readme 2021-11-30 13:38:51 +00:00
Dimitrie Stefanescu 185621b4c1 feat: local updates 2021-11-30 12:17:09 +00:00
Matteo Cominetti c65e376410 Create close-issue.yml 2021-10-02 17:07:27 +01:00
Matteo Cominetti 423c734e3b Create open-issue.yml 2021-10-02 17:07:09 +01:00
Dimitrie Stefanescu 313812f2ac closes #23 and #24 2021-08-04 16:28:04 +03:00
Dimitrie Stefanescu de7b9898d6 fix: layout bugs fix 2021-07-26 07:30:07 +01:00
Dimitrie Stefanescu 87625979f1 fix: mobile display connectors page 2021-07-25 12:38:32 +01:00
Dimitrie Stefanescu 02d06fc3bc feat: banner smol bugfix 2021-07-25 11:31:49 +01:00
Dimitrie Stefanescu 092baa0501 Merge pull request #21 from specklesystems/interop
CSS ++
2021-07-24 20:29:58 +01:00
37 changed files with 8265 additions and 5417 deletions
+78
View File
@@ -0,0 +1,78 @@
name: Update issue Status
on:
issues:
types: [closed]
jobs:
update_issue:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ORGANIZATION: specklesystems
PROJECT_NUMBER: 9
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
echo "$PROJECT_ID"
echo "$STATUS_FIELD_ID"
echo 'DONE_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .settings | fromjson | .options[] | select(.name== "Done") | .id' project_data.json) >> $GITHUB_ENV
echo "$DONE_ID"
- name: Add Issue to project #it's already in the project, but we do this to get its node id!
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
mutation($project:ID!, $id:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $id}) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f id=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Update Status
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
mutation($project:ID!, $status:ID!, $id:ID!, $value:String!) {
set_status: updateProjectNextItemField(
input: {
projectId: $project
itemId: $id
fieldId: $status
value: $value
}
) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f status=$STATUS_FIELD_ID -f id=$ITEM_ID -f value=${{ env.DONE_ID }}
+50
View File
@@ -0,0 +1,50 @@
name: Move new issues into Project
on:
issues:
types: [opened]
jobs:
track_issue:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ORGANIZATION: specklesystems
PROJECT_NUMBER: 9
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
- name: Add Issue to project
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
mutation($project:ID!, $id:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $id}) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f id=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
+24 -52
View File
@@ -1,61 +1,33 @@
# Ghost Starter Theme
# Speckle Website Theme
A starter framework for Ghost themes! Fork this repository and start your development here with all the main things you need to develop a custom Ghost theme.
## Local development
&nbsp;
### Installing ghost
# First time using a Ghost theme?
We first need to install ghost locally to then work on our custom theme.
Use Node 16.13.0.
Ghost uses a simple templating language called [Handlebars](http://handlebarsjs.com/) for its themes.
- `npm install ghost-cli@latest -g`
- `ghost install 4.48.2 --local` (or update to match the curret versionnpm run dev)
- Set up you Ghost site
- You can import stuff from our live website from `https://speckle.systems/ghost/#/settings/labs` > Export your content and import into your local site
- Note: images are not exported automatically unforch
- `ghost stop`
- On windows: `npm install -g win-node-env`
We've documented our default theme pretty heavily so that it should be fairly easy to work out what's going on just by reading the code and the comments. Once you feel comfortable with how everything works, we also have full [theme API documentation](https://themes.ghost.org) which explains every possible Handlebars helper and template.
### Theme setup
**The main files are:**
- Clone this repo somewhere on you machine
- `default.hbs` - The main template file
- `index.hbs` - Used for the home page
- `post.hbs` - Used for individual posts
- `page.hbs` - Used for individual pages
- `tag.hbs` - Used for tag archives
- `author.hbs` - Used for author archives
- `npm install`
- `npm run zip`
One neat trick is that you can also create custom one-off templates just by adding the slug of a page to a template file. For example:
Now, in order to trigger Ghost load our theme and use it live as we're editing it, we need to first upload it as a zip.
- `page-about.hbs` - Custom template for the `/about/` page
- `tag-news.hbs` - Custom template for `/tag/news/` archive
- `author-ali.hbs` - Custom template for `/author/ali/` archive
&nbsp;
# Development
Styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need [Node](https://nodejs.org/), [Yarn](https://yarnpkg.com/) and [Gulp](https://gulpjs.com) installed globally. After that, from the theme's root directory:
```bash
# Install
yarn
# Run build & watch for changes
yarn dev
```
Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically.
The `zip` Gulp task packages the theme files into `dist/<theme-name>.zip`, which you can then upload to your site.
```bash
yarn zip
```
&nbsp;
# PostCSS Features Used
- Autoprefixer - Don't worry about writing browser prefixes of any kind, it's all done automatically with support for the latest 2 major versions of every browser.
- [Color Mod](https://github.com/jonathantneal/postcss-color-mod-function)
&nbsp;
# Copyright & License
Copyright (c) 2013-2020 Ghost Foundation - Released under the [MIT license](LICENSE).
- in the ghost admin setting upload the zip file just generated inside your `ghost-theme\dist` folder
- set it as active theme
- got to `YOUR-LOCAL-GHOST-INSTALLATION-FOLDER\ghost-local\content\themes`
- replace the newly created `speckle-starter-theme` folder with your actual ghost theme repo folder (I had to rename it to `speckle-starter-theme`)
- alternatively create a symlink
- `npm run dev` inside you theme folder
- now it should be up and running
+104 -32
View File
@@ -1,6 +1,6 @@
/* Tailwind */
/* ! tailwindcss v2.2.2 | MIT License | https://tailwindcss.com */
/* ! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com */
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
@@ -203,7 +203,8 @@ Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type='button'] {
[type='button'],
[type='submit'] {
-webkit-appearance: button;
}
@@ -211,6 +212,11 @@ button,
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
Restore the focus styles unset by the previous rule.
*/
@@ -240,6 +246,11 @@ progress {
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
height: auto;
}
/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
@@ -254,11 +265,20 @@ Correct the cursor style of increment and decrement buttons in Safari.
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/*
Interactive
===========
@@ -303,16 +323,6 @@ button {
background-image: none;
}
/**
* Work around a Firefox/IE bug where the transparent `button` background
* results in a loss of the default `button` focus styles.
*/
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
fieldset {
margin: 0;
padding: 0;
@@ -423,6 +433,14 @@ button,
cursor: pointer;
}
/**
* Override legacy focus reset from Normalize with modern Firefox focus styles.
*
* This is actually an improvement over the new defaults in Firefox in our testing,
* as it triggers the better focus styles even for links, which still use a dotted
* outline in Firefox by default.
*/
table {
border-collapse: collapse;
}
@@ -521,12 +539,20 @@ video {
height: auto;
}
/**
* Ensure the default browser behavior of the `hidden` attribute.
*/
[hidden] {
display: none;
}
*, ::before, ::after {
--tw-border-opacity: 1;
border-color: rgba(229, 231, 235, var(--tw-border-opacity));
}
[type='text'],[type='url'],[type='date'],[type='search'],[type='time'],[multiple],textarea,select {
[type='text'],[type='email'],[type='url'],[type='date'],[type='search'],[type='time'],[multiple],textarea,select {
appearance: none;
background-color: #fff;
border-color: #6b7280;
@@ -538,9 +564,10 @@ video {
padding-left: 0.75rem;
font-size: 1rem;
line-height: 1.5rem;
--tw-shadow: 0 0 #0000;
}
[type='text']:focus, [type='url']:focus, [type='date']:focus, [type='search']:focus, [type='time']:focus, [multiple]:focus, textarea:focus, select:focus {
[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='date']:focus, [type='search']:focus, [type='time']:focus, [multiple]:focus, textarea:focus, select:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
@@ -549,7 +576,7 @@ video {
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-color: #2563eb;
}
@@ -558,6 +585,14 @@ input::placeholder,textarea::placeholder {
opacity: 1;
}
::-webkit-datetime-edit-fields-wrapper {
padding: 0;
}
::-webkit-date-and-time-value {
min-height: 1.5em;
}
select {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
background-position: right 0.5rem center;
@@ -1878,10 +1913,6 @@ select {
z-index: 40;
}
.z-50 {
z-index: 50;
}
.col-span-1 {
grid-column: span 1 / span 1;
}
@@ -2112,6 +2143,10 @@ select {
margin-left: 1rem;
}
.-ml-1 {
margin-left: -0.25rem;
}
.-ml-2 {
margin-left: -0.5rem;
}
@@ -2148,6 +2183,10 @@ select {
display: none;
}
.h-3 {
height: 0.75rem;
}
.h-4 {
height: 1rem;
}
@@ -2252,6 +2291,10 @@ select {
max-height: 100%;
}
.w-3 {
width: 0.75rem;
}
.w-4 {
width: 1rem;
}
@@ -2280,6 +2323,10 @@ select {
width: 3.5rem;
}
.w-16 {
width: 4rem;
}
.w-20 {
width: 5rem;
}
@@ -2376,6 +2423,14 @@ select {
border-collapse: collapse;
}
.origin-top {
transform-origin: top;
}
.origin-top-right {
transform-origin: top right;
}
.transform {
--tw-translate-x: 0;
--tw-translate-y: 0;
@@ -2387,14 +2442,6 @@ select {
transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.origin-top {
transform-origin: top;
}
.origin-top-right {
transform-origin: top right;
}
.-translate-x-3 {
--tw-translate-x: -0.75rem;
}
@@ -2474,7 +2521,6 @@ select {
--tw-scale-y: 1;
}
@keyframes spin {
to {
transform: rotate(360deg);
@@ -2636,6 +2682,12 @@ select {
margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-1 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.25rem * var(--tw-space-x-reverse));
margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
@@ -3826,7 +3878,7 @@ select {
}
/**
* Swiper 6.7.0
* Swiper 6.8.4
* Most modern mobile touch slider and framework with hardware accelerated transitions
* https://swiperjs.com
*
@@ -3834,7 +3886,7 @@ select {
*
* Released under the MIT License
*
* Released on: May 31, 2021
* Released on: August 23, 2021
*/
@font-face {
@@ -4160,6 +4212,10 @@ button.swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet:only-child {
display: none !important;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: var(--swiper-pagination-color, var(--swiper-theme-color));
@@ -4861,10 +4917,18 @@ figcaption {
height: 3rem;
}
.sm\:h-32 {
height: 8rem;
}
.sm\:w-12 {
width: 3rem;
}
.sm\:w-32 {
width: 8rem;
}
.sm\:w-auto {
width: auto;
}
@@ -4873,8 +4937,8 @@ figcaption {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sm\:grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr));
.sm\:grid-cols-5 {
grid-template-columns: repeat(5, minmax(0, 1fr));
}
.sm\:gap-8 {
@@ -5234,6 +5298,10 @@ figcaption {
grid-column: span 3 / span 3;
}
.lg\:col-start-2 {
grid-column-start: 2;
}
.lg\:my-10 {
margin-top: 2.5rem;
margin-bottom: 2.5rem;
@@ -5355,6 +5423,10 @@ figcaption {
align-items: center;
}
.lg\:justify-start {
justify-content: flex-start;
}
.lg\:justify-between {
justify-content: space-between;
}
+4
View File
@@ -1,3 +1,5 @@
/* purgecss start ignore */
/* Variables
/* ---------------------------------------------------------- */
@@ -28,3 +30,5 @@
--margin: 2rem;
--radius: 0.5rem;
}
/* purgecss end ignore */
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 510 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 347 360" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g><path d="M347.196,44.248l-297.975,16.477l0,299.275l297.975,-16.477l0,-299.275Z" style="fill:#047efb;"/><path d="M297.975,-0l-297.975,16.477l49.221,44.248l297.975,-16.477l-49.221,-44.248Z" style="fill:#7bbcff;"/><path d="M49.221,60.725l-49.221,-44.248l0,299.275l49.221,44.248l0,-299.275Z" style="fill:#313bcf;"/></g></svg>

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 KiB

+4 -4
View File
@@ -37,7 +37,7 @@
<div class="relative text-lg text-gray-600 dark:text-gray-400 md:flex-grow">
<p class="relative">
Send your CV and tell us why you think you'd be a great fit for the role! We'd also
Send your CV and tell us why you think you'd be a great fit for the role! We'd also like
you to include a small example of how you would improve Speckle, whether it's an idea, a sketch or a Pull Request.
</p>
</div>
@@ -60,7 +60,7 @@
AEC.
If you're intrested in working at Speckle,
get in touch at
hello@speckle.systems
careers@speckle.systems
</p>
@@ -128,8 +128,8 @@
<div class="flex flex-col rounded-lg transition shadow hover:shadow-2xl overflow-hidden col-span-1 md:col-span-2">
<div class="flex-shrink-0 ">
<img class="w-full h-72 object-cover" src="https://speckle.systems/content/images/2021/06/standups.png"
alt="izzys bunnies going to the vet">
<img class="w-full h-72 object-cover" src="{{asset 'images/bonkers.png'}}"
alt="standups">
</div>
<div class="flex-1 bg-white dark:bg-gray-900 dark:text-gray-200 p-6 flex flex-col justify-between">
<div class="flex-1">
+1 -1
View File
@@ -34,7 +34,7 @@
<span class="text-white">How to apply</span>
</h1>
<p>
Send your CV (hello [at] speckle [dot] systems) and tell us why you think you'd be a great fit for the role.
Send your CV (careers@speckle.systems) and tell us why you think you'd be a great fit for the role.
</p>
<p>
Include a small example of
+50 -49
View File
@@ -1,65 +1,66 @@
{{!< default}}
{{!< default}} {{#post}} <article class="relative max-w-2xl mx-auto px-4 md:px-0">
{{#post}}
{{!-- Header --}}
<article class="relative max-w-2xl mx-auto px-4 md:px-0">
<header class="mt-10 prose prose-lg dark:prose-dark max-w-none">
{{!-- Header --}}
{{#if feature_image}}
<img class="gh-feature-image mx-auto w-full max-w-full" srcset="{{img_url feature_image size=" s"}} 300w, {{img_url
feature_image size="m" }} 600w, {{img_url feature_image size="l" }} 1000w, {{img_url feature_image size="xl" }}
2000w" sizes="(max-width: 1000px) 1000px, 2000px" loading="lazy" src="{{img_url feature_image size=" xl"}}"
alt="{{title}}" />
{{/if}}
<h1 class="">
{{title}}
</h1>
{{#if custom_excerpt}}
<p>
{{custom_excerpt}}
</p>
{{/if}}
<header class="mt-10 prose prose-lg dark:prose-dark max-w-none">
<p class="text-sm">
Written by
{{#foreach authors}}
{{name}}
{{/foreach}}
<span class="text-gray-500">on <time datetime="{{date format=" YYYY-MM-DD"}}">{{date format="D MMM
YYYY"}}</time></span>
{{#if feature_image}}
<img class="gh-feature-image mx-auto w-full max-w-full"
srcset="{{img_url feature_image size="s"}} 300w,
{{img_url feature_image size="m"}} 600w,
{{img_url feature_image size="l"}} 1000w,
{{img_url feature_image size="xl"}} 2000w"
sizes="(max-width: 1000px) 1000px, 2000px"
loading="lazy" src="{{img_url feature_image size="xl"}}"
alt="{{title}}" />
{{/if}}
<h1 class="">
{{title}}
</h1>
{{#if custom_excerpt}}
<p>
{{custom_excerpt}}
</p>
{{/if}}
</p>
<p class="text-sm">
Written by
{{#foreach authors}}
{{name}}
{{/foreach}}
<span class="text-gray-500">on <time datetime="{{date format="YYYY-MM-DD"}}">{{date format="D MMM YYYY"}}</time></span>
</header>
</p>
{{!-- Content --}}
</header>
<div class="prose prose-blue dark:prose-dark max-w-none mt-10">
{{!-- Content --}}
{{content}}
<div class="prose prose-blue dark:prose-dark max-w-none mt-10">
</div>
{{content}}
<div
class="relative max-w-prose p-5 mx-auto mb-20 mt-20 pb-5 grid grid-cols-1 gap-4 bg-white dark:bg-gray-900 rounded-xl">
<p class="dark:text-gray-300">Feeback or comments? We'd love to hear from you in our
<a class="font-semibold text-blue-600" href="https://speckle.community/invites/Fbk5j1wbRW" target="_blank">community
forum!</a>
</p>
</div>
</div>
{{!-- Read more --}}
{{!-- Read more --}}
<div class="mt-8 grid gap-5 md:grid-cols-2 mb-10">
<div class="mt-8 grid gap-5 md:grid-cols-2 mb-10">
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:>{{id}}"
limit="2" order="id asc"}}
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:>{{id}}"
limit="2" order="id asc"}}
{{#foreach posts}}
{{> cardFancySmall}}
{{/foreach}}
{{/get}}
{{#foreach posts}}
{{> cardFancySmall}}
{{/foreach}}
{{/get}}
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:<
{{id}}" limit=" 2" order="id desc" }}
{{#foreach posts}} {{> cardFancySmall}}
{{/foreach}} {{/get}} {{> cardTag}} </div> </article>
{{/post}}
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:< {{id}}" limit=" 2" order="id desc" }} {{#foreach posts}} {{>
cardFancySmall}}
{{/foreach}} {{/get}} {{> cardTag}} </div>
</article>
{{/post}}
+5 -60
View File
@@ -7,7 +7,7 @@
{{!-- Header --}}
<figure class="col-span-7 md:col-span-2 flex items-center justify-center rounded-xl overflow-hidden mt-10">
{{#if feature_image}}
<img srcset="{{img_url feature_image size=" s"}} 300w, {{img_url feature_image size="m" }} 600w, {{img_url
<img class="object-cover" srcset="{{img_url feature_image size=" s"}} 300w, {{img_url feature_image size="m" }} 600w, {{img_url
feature_image size="l" }} 1000w, {{img_url feature_image size="xl" }} 2000w" sizes="(max-width: 800px) 400px,
(max-width: 1170px) 1170px,
2000px" src="{{img_url feature_image size=" xl"}}" alt="{{title}}" />
@@ -23,9 +23,9 @@
</span>
<h1 class="gh-title">{{title}}</h1>
</div>
<div class="max-w-prose mx-auto my-4">
<div class="max-w-prose mx-auto my-4 space-y-1 space-x-1">
{{#foreach tags}}
<a class="rounded-full py-1 px-3 bg-blue-500 text-white mr-2 inline-block hover:ring-4 transition"
<a class="rounded-full py-1 px-3 bg-blue-500 text-white inline-block hover:ring-4 transition"
href="{{url}}">
{{name}}
</a>
@@ -91,9 +91,9 @@
Top
</a>
<p class="border-t dark:border-gray-800 mt-2 pt-2"></p>
<div>
<div class="space-y-1 space-x-1">
{{#foreach tags}}
<a class="rounded-full py-1 px-3 bg-blue-500 text-white mr-2 inline-block hover:ring-4 transition"
<a class="rounded-full py-1 px-3 bg-blue-500 text-white inline-block hover:ring-4 transition"
href="{{url}}">
{{name}}
</a>
@@ -110,10 +110,6 @@
class="block post-content prose dark:prose-dark lg:prose-xl prose-blue mx-auto col-span-7 md:col-span-5 mt-4 w-full max-w-prose">
{{content}}
</div>
<div class="post-content mx-auto col-span-7 md:col-span-5 mt-4">
</div>
</div>
</article>
@@ -160,54 +156,3 @@
{{/post}}
<script>
let postContent = Array.from(document.getElementsByClassName('post-content'))[0].innerHTML
let tips = postContent.match(/<p>::: tip(.*?):::<\/\p>/g)
let warnings = postContent.match(/<p>::: warning(.*?):::<\/\p>/g)
let dangers = postContent.match(/<p>::: danger(.*?):::<\/\p>/g)
let details = postContent.match(/<p>::: details([\s\S]+?):::<\/\p>/g)
if (tips)
tips.forEach(tip => {
let result = tip.match(/::: tip(.*?)</)
let tipTitle = result[1] && result[1] !== "" ? result[1] : 'Tip'
let newTip = `<div class="mb-4 border-l-4 border-blue-500 bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + tip.replace(`::: tip${result[1]}`, `<div class="font-bold text-blue-500 mb-2">${tipTitle}</div>`) + `</div>`
newTip = newTip.replace(":::", "")
newTip = newTip.replace("<br>", "")
postContent = postContent.replace(tip, newTip)
})
if (warnings)
warnings.forEach(tip => {
let result = tip.match(/::: warning(.*?)</)
let tipTitle = result[1] && result[1] !== "" ? result[1] : 'Warning'
let newTip = `<div class="mb-4 border-l-4 border-yellow-500 bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + tip.replace(`::: warning${result[1]}`, `<div class="font-bold text-yellow-500 mb-2">${tipTitle}</div>`) + `</div>`
newTip = newTip.replace(":::", "")
newTip = newTip.replace("<br>", "")
postContent = postContent.replace(tip, newTip)
})
if (dangers)
dangers.forEach(tip => {
let result = tip.match(/::: danger(.*?)</)
let tipTitle = result[1] && result[1] !== "" ? result[1] : 'Danger'
let newTip = `<div class="mb-4 border-l-4 border-red-500 bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + tip.replace(`::: danger${result[1]}`, `<div class="font-bold text-red-500 mb-2">${tipTitle}</div>`) + `</div>`
newTip = newTip.replace(":::", "")
newTip = newTip.replace("<br>", "")
postContent = postContent.replace(tip, newTip)
})
if (details)
details.forEach(detail => {
let result = detail.match(/::: details(.*?)</)
let detailTitle = result[1] && result[1] !== "" ? result[1] : 'Details'
let newDetails = `<details class="mb-4 w-full max-w-full bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + detail.replace(`::: details${result[1]}`, `<summary class="font-bold text-blue-500 my-2">${detailTitle}</summary>`) + `</details>`
newDetails = newDetails.replace(":::", "")
postContent = postContent.replace(detail, newDetails)
})
Array.from(document.getElementsByClassName('post-content'))[0].innerHTML = postContent
</script>
+49
View File
@@ -69,7 +69,56 @@
</script>
{{/is}}
{{ghost_foot}}
<script>
let postContent = Array.from(document.getElementsByClassName('post-content'))[0].innerHTML
let tips = postContent.match(/<p>::: tip(.*?):::<\/\p>/g)
let warnings = postContent.match(/<p>::: warning(.*?):::<\/\p>/g)
let dangers = postContent.match(/<p>::: danger(.*?):::<\/\p>/g)
let details = postContent.match(/<p>::: details([\s\S]+?):::<\/\p>/g)
if (tips)
tips.forEach(tip => {
let result = tip.match(/::: tip(.*?)</)
let tipTitle = result[1] && result[1] !== "" ? result[1] : 'Tip'
let newTip = `<div class="mb-4 border-l-4 border-blue-500 bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + tip.replace(`::: tip${result[1]}`, `<div class="font-bold text-blue-500 mb-2">${tipTitle}</div>`) + `</div>`
newTip = newTip.replace(":::", "")
newTip = newTip.replace("<br>", "")
postContent = postContent.replace(tip, newTip)
})
if (warnings)
warnings.forEach(tip => {
let result = tip.match(/::: warning(.*?)</)
let tipTitle = result[1] && result[1] !== "" ? result[1] : 'Warning'
let newTip = `<div class="mb-4 border-l-4 border-yellow-500 bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + tip.replace(`::: warning${result[1]}`, `<div class="font-bold text-yellow-500 mb-2">${tipTitle}</div>`) + `</div>`
newTip = newTip.replace(":::", "")
newTip = newTip.replace("<br>", "")
postContent = postContent.replace(tip, newTip)
})
if (dangers)
dangers.forEach(tip => {
let result = tip.match(/::: danger(.*?)</)
let tipTitle = result[1] && result[1] !== "" ? result[1] : 'Danger'
let newTip = `<div class="mb-4 border-l-4 border-red-500 bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + tip.replace(`::: danger${result[1]}`, `<div class="font-bold text-red-500 mb-2">${tipTitle}</div>`) + `</div>`
newTip = newTip.replace(":::", "")
newTip = newTip.replace("<br>", "")
postContent = postContent.replace(tip, newTip)
})
if (details)
details.forEach(detail => {
let result = detail.match(/::: details(.*?)</)
let detailTitle = result[1] && result[1] !== "" ? result[1] : 'Details'
let newDetails = `<details class="mb-4 w-full max-w-full bg-white dark:bg-gray-900 px-4 py-2 rounded-lg transition-shadow shadow-sm hover:shadow-xl">` + detail.replace(`::: details${result[1]}`, `<summary class="font-bold text-blue-500 my-2">${detailTitle}</summary>`) + `</details>`
newDetails = newDetails.replace(":::", "")
postContent = postContent.replace(detail, newDetails)
})
Array.from(document.getElementsByClassName('post-content'))[0].innerHTML = postContent
</script>
</body>
</html>
+4 -4
View File
@@ -2,7 +2,7 @@
"name": "speckle-starter-theme",
"description": "A custom theme for speckle",
"demo": "https://starter.ghost.io",
"version": "2.4.2",
"version": "2.4.13",
"engines": {
"ghost": ">=3.0.0",
"ghost-api": "v3"
@@ -44,13 +44,13 @@
"bugs": "https://github.com/TryGhost/Starter/issues",
"contributors": "https://github.com/TryGhost/Starter/graphs/contributors",
"devDependencies": {
"autoprefixer": "9.8.3",
"autoprefixer": "^10.4.14",
"cssnano": "4.1.10",
"gscan": "3.5.4",
"gscan": "^4.37.1",
"gulp": "4.0.2",
"gulp-concat": "^2.6.1",
"gulp-livereload": "4.0.2",
"gulp-postcss": "8.0.0",
"gulp-postcss": "^9.0.1",
"gulp-sourcemaps": "2.6.5",
"gulp-terser": "^2.0.1",
"gulp-uglify": "3.0.2",
+4 -4
View File
@@ -1,5 +1,6 @@
{{!< default}}
{{#post}}
<div class="absolute inset-0 pt-32 opacity-10 h-5/6">
{{> extras/super }}
</div>
@@ -14,7 +15,7 @@
Specklers!</p>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-20 md:gap-10 my-20 text-left">
{{#get 'authors' limit='all' include='count.posts' order='date desc' filter="slug:-speckle"}}
{{!-- {{#get 'authors' limit='all' include='count.posts' order='date desc' filter="slug:-speckle"}} --}}
{{#foreach authors}}
<div class="flex items-center space-x-4 lg:space-x-6">
@@ -30,7 +31,7 @@
</div>
{{/foreach}}
{{/get}}
{{!-- {{/get}} --}}
</div>
</div>
@@ -59,7 +60,6 @@
</div>
</a>
</div>
{{!-- TODO --}}
{{!-- <div class="relative h-screen/4 rounded-2xl overflow-hidden transition hover:shadow-2xl p-5 flex justify-center text-center">
@@ -76,6 +76,6 @@
</div>
</article>
{{/post}}
{{!-- {{> extras/patterns}} --}}
+85
View File
@@ -0,0 +1,85 @@
{{!< default}} {{#post}} {{> extras/patterns}}
<article class="relative">
<main class="mx-auto max-w-prose dark:prose-dark object-center justify-center my-10">
<div class="w-3/3 text-center">
<h1 class="text-4xl tracking-tight font-extrabold text-gray-900 dark:text-gray-100 sm:text-5xl md:text-6xl">
<span class="inline-block xl:inline text-gradient text-gradient bg-gradient-to-r from-blue-500 to-blue-700">
{{title}}
</span>
</h1>
<div
class="post-body text-gray-500 dark:text-gray-100 text-base text-justify sm:text-lg md:text-xl md:max-w-6xl mt-10">
Manage your Connectors and Accounts with ease! Manager for Speckle is the only tool you'll need to install and update Connectors and link your Accounts.
</div>
</div>
</main>
<div class="relative w-default mb-10 gap-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
<div class="self-end mt-5 hover:scale-105 col-span-1 lg:col-start-2 transition transform scale-95">
<button onclick="downloadManager('manager.exe')"
class="w-full bg-blue-500 hover:bg-blue-600 inline-flex items-center justify-center font-medium text-base text-white px-4 py-4 shadow-sm border-transparent rounded-md border hover:ring-4 hover:shadow-xl transition">
<svg aria-hidden="true" class="mr-4 -ml-1 w-5 h-5" fill="currentColor" viewBox="0 0 87 87"
xmlns="http://www.w3.org/2000/svg">
<path
d="M0 12.402l35.687-4.86.016 34.423-35.67.203zm35.67 33.529l.028 34.453L.028 75.48.026 45.7zm4.326-39.025L87.314 0v41.527l-47.318.376zm47.329 39.349l-.011 41.34-47.318-6.678-.066-34.739z">
</path>
</svg>
Download for Windows
</button>
</div>
<div class="self-end mt-5 hover:scale-105 col-span-1 transition transform scale-95">
<button onclick="downloadManager('manager.dmg')"
class="w-full bg-blue-500 hover:bg-blue-600 inline-flex items-center justify-center font-medium text-base text-white px-4 py-4 shadow-sm border-transparent rounded-md border hover:ring-4 hover:shadow-xl transition">
<svg aria-hidden="true" class="mr-4 -ml-1 w-5 h-5" fill="currentColor" viewBox="0 0 814 1000"
xmlns="http://www.w3.org/2000/svg">
<path
d="M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2zm-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3z">
</path>
</svg>
Download for Mac
</button>
</div>
</div>
<div class="relative max-w-prose p-5 mx-auto mb-10 pb-5 grid grid-cols-1 gap-4 ">
<img class="w-full object-cover" src="{{asset 'images/manager.png'}}" alt="manager"/>
</div>
<div
class="relative max-w-prose p-5 mx-auto mb-20 pb-5 grid grid-cols-1 gap-4 bg-white dark:bg-gray-900 rounded-xl transition hover:shadow-xl">
<p class="dark:text-gray-300">Want to see all our releases and set up Conectors and Accounts manually? Visit our
<a class="font-semibold text-blue-600" href="https://releases.speckle.systems/" target="_blank">
releases page</a> instead.
</p>
</div>
<script>
async function downloadManager(filename) {
let url = `https://releases.speckle.dev/manager2/installer/${filename}`
let a = document.createElement('a')
document.body.appendChild(a)
a.style = 'display: none'
a.href = url
a.download = filename
a.click()
document.body.removeChild(a)
mixpanel.track('Manager Download', {
os: filename.includes('exe') ? 'win' : 'mac'
})
}
</script>
</article>
{{/post}}
+170
View File
@@ -0,0 +1,170 @@
{{!< default}}
{{#post}}
{{> extras/patterns}}
<article class="relative">
<main class="mx-auto max-w-prose dark:prose-dark object-center justify-center my-10">
<div class="w-3/3 text-center">
<h1 class="text-4xl tracking-tight font-extrabold text-gray-900 dark:text-gray-100 sm:text-5xl md:text-6xl">
<span class="inline-block xl:inline text-gradient text-gradient bg-gradient-to-r from-blue-500 to-blue-700">
{{title}}
</span>
</h1>
<div class="post-body text-gray-500 dark:text-gray-100 text-base text-justify sm:text-lg md:text-xl md:max-w-6xl mt-10">
Speckle 2.0 is now in public beta - join now and get early access to our hosted and managed Speckle offerings.
</div>
</div>
</main>
{{!-- <div class="mx-auto max-w-prose prose dark:prose-dark object-center justify-center">
<h1>Ready to deploy your own server?</h1>
<div class="post-body text-gray-500 dark:text-gray-100 text-base text-justify sm:text-lg md:text-xl md:max-w-6xl mt-10 pb-10">
We've got you covered.
</div>
</div> --}}
{{!-- {{> pricingWithPro }} --}}
{{!-- {{> pricingRegister }} --}}
{{> pricing }}
<header class="mb-10 mt-24 px-4 lg:px-8 relative sm:px-6 pb-10">
{{!-- <div class="max-w-prose mx-auto relative py-10 my-10 rounded-2xl overflow-hidden flex col-span-2 transition hover:shadow-2xl bg-white dark:bg-gray-900">
<div class="relative block mx-auto self-center text-center">
<a href="https://calendly.com/speckle-ollie" target="_blank" class="w-full h-full flex content-center">
<div class=" text-2xl font-semibold text-blue-600">
Still have questions? Book A Demo!
</div>
</a>
</div>
</div> --}}
<div class="mx-auto max-w-prose prose dark:prose-dark object-center justify-center">
<h1>
<span class="font-extrabold leading-8 text-4xl text-gray-700 tracking-tight mt-12 dark:text-gray-100 ">
Q&As:
</span>
</h1>
<div class="leading-8 mx-auto max-w-prose mt-8">
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
Which is the best plan for me?
</h4>
<p class="text-base">
If you are a large enterprise or have special
data sovereignty
requirements for your project, the
Managed plan is best suited to cover your
needs. We support deploying Speckle on your
own infrastructure, or ours.
For everyday usage & just getting things
done, we recommend the Free plan.
</p>
</div>
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
Wait, isn't Speckle Open Source?
</h4>
<p class="text-base">
Yes! Speckle is Open Source. You can always self-host your server, build your own connectors, etc. - at your own cost.
Check out our <a class="text-blue-500 font-normal"
href="https://github.com/specklesystems">
code on Github.</a>
</p>
</div>
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
Can you deploy Speckle on Azure, AWS, or GCP?
</h4>
<p class="text-base">
Yes. As part of the Enterprise plan, we can
deploy Speckle for you on any cloud provider
your company might
be using.
</p>
</div>
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
Do you provide support for self-hosted
versions?
</h4>
<p class="text-base">Unfortunately we cannot do
so, for more reasons than one. First, it's
difficult to debug a setup without having
access to it. Second, to have access to it
implies we would be seeing very private
details of your infrastructure - which you
don't want us to do without a contract in
place.
<br>
<br>
If you want a support package for self-hosted
versions, <a class="text-blue-500 font-normal"
href="/contact">
don't hesitate to get in touch!</a>
</p>
</div>
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
Will the Standard plan always be free?
</h4>
<p class="text-base">Yes.
</p>
</div>
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
I'm a teacher/professor/academic/university,
can I get a managed server?
</h4>
<p class="text-base">Absolutely. Just get in
touch with us, and we'll discuss the best way
to go forward. <a class="text-blue-500 font-normal"
href="/contact">
Contact us.</a>
</p>
</div>
<div class="my-5 text-xl text-gray-700 dark:text-gray-200">
<h4 class="text-xl mb-4">
<span class="text-blue-600 font-bold">Q:</span>
What does "Speckle" stand for?
</h4>
<p class="text-base">
Only a few people know this. It's a closely
guarded secret, but if you find out - let us
know and we'll send you a sticker pack.
</p>
</div>
</div>
</div>
<div class="max-w-prose mx-auto py-10 px-5 lg:px-0">
<div class="relative py-10 my-5 rounded-2xl overflow-hidden flex col-span-2 transition hover:shadow-2xl bg-white dark:bg-gray-900">
<div class="relative block mx-auto self-center text-center">
<a href="/contact" class="w-full h-full flex content-center">
<div class=" text-2xl font-semibold text-blue-600">
Still have questions? Contact us →
</div>
</a>
</div>
</div>
</div>
</header>
</article>
{{/post}}
+2 -6
View File
@@ -3,7 +3,7 @@
<h1 class="text-4xl tracking-tight font-extrabold text-gray-900 dark:text-gray-100 sm:text-5xl md:text-6xl">
<span class="inline-block xl:inline text-gradient text-gradient bg-gradient-to-r from-blue-500 to-blue-700">
Our mission is to empower AEC companies with open and accessible data.
Our mission is to enable everyone to speak in 3D.
</span>
</h1>
<p class="text-4xl text-justify text-gray-700 dark:text-gray-100 md:max-w-6xl mt-10">
@@ -17,11 +17,7 @@
<h2 class="text-xl pl-5 mb-5 font-bold text-blue-600">What
is Speckle?</h2>
<p class=" pl-5 text-base text-gray-800 dark:text-gray-400">
Speckle is a cloud based solution for the AEC
industry that provides
honest interoperability, real time
collaboration, data management, versioning and
automation.
Speckle is open source digital infrastructure for anything designed in 3D. We handle interoperability between software silos, real time collaboration, data management, versioning and automation.
</p>
</div>
</div>
+1 -1
View File
@@ -18,7 +18,7 @@
{{/if}}
</p>
<div class="rounded-xl shadow-xl mt-5">
<a href="/getstarted" class="flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white transition-colors bg-blue-600 hover:bg-blue-700 md:py-4 md:text-lg md:px-10">
<a href="https://app.speckle.systems" class="flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white transition-colors bg-blue-600 hover:bg-blue-700 md:py-4 md:text-lg md:px-10">
{{#if buttonText}}
{{buttonText}}
{{else}}
+1 -1
View File
@@ -15,7 +15,7 @@
{{/if}}
</p>
<div class="rounded-xl shadow-xl mt-5">
<a href="/getstarted"
<a href="https://app.speckle.systems"
class="flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white transition bg-blue-500 hover:ring-4 md:py-4 md:text-lg md:px-10">
{{#if buttonText}}
{{buttonText}}
+1 -1
View File
@@ -1,4 +1,4 @@
<a href="/getstarted"
<a href="https://app.speckle.systems"
class="inline-block items-center justify-center px-8 py-3 transition text-base font-medium rounded-md text-white bg-blue-500 hover:ring-4 hover:shadow-3xl md:py-4 md:text-lg">
<span class="text-white no-underline">Get Started</span>
</a>
+15
View File
@@ -33,4 +33,19 @@ class="text-gray-800 transition dark:text-gray-200 hover:text-gray-500">
<path fill-rule="evenodd" d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z"
clip-rule="evenodd"></path>
</svg>
</a>
<a href="https://www.youtube.com/c/SpeckleSystems" class="text-gray-800 transition dark:text-gray-200 hover:text-gray-500">
<span class="sr-only">Instagram</span>
<svg version="1.1"
viewBox="0 0 96.875 96.875" class="h-6 w-6" fill="currentColor">
<g>
<path d="M95.201,25.538c-1.186-5.152-5.4-8.953-10.473-9.52c-12.013-1.341-24.172-1.348-36.275-1.341
c-12.105-0.007-24.266,0-36.279,1.341c-5.07,0.567-9.281,4.368-10.467,9.52C0.019,32.875,0,40.884,0,48.438
C0,55.992,0,64,1.688,71.336c1.184,5.151,5.396,8.952,10.469,9.52c12.012,1.342,24.172,1.349,36.277,1.342
c12.107,0.007,24.264,0,36.275-1.342c5.07-0.567,9.285-4.368,10.471-9.52c1.689-7.337,1.695-15.345,1.695-22.898
C96.875,40.884,96.889,32.875,95.201,25.538z M35.936,63.474c0-10.716,0-21.32,0-32.037c10.267,5.357,20.466,10.678,30.798,16.068
C56.434,52.847,46.23,58.136,35.936,63.474z"/>
</g>
</svg>
</a>
+1 -1
View File
@@ -11,7 +11,7 @@
</div>
</a>
<p class="text-gray-500 text-base my-4">
{{@site.description}}
The world runs on 3D: Speckle enables you to deliver better designs, together.
</p>
<div class="flex space-x-6 justify-center md:justify-start">
{{> extras/socialLinks }}
+12 -12
View File
@@ -6,7 +6,7 @@
us:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md">
<option value="Select a connector">From</option>
{{#get "tags" limit="all" include='count.posts' order='count.posts desc'
filter="slug:[rhino,grasshopper,revit,dynamo,excel,blender,autocad,civil3d,unity,unreal]"}}
filter="slug:[rhino,grasshopper,revit,dynamo,navisworks,excel,blender,autocad,civil3d,advancesteel,unity,unreal,archicad,openrail,etabs,sap2000,csibridge,safe,qgis,arcgis,topsolid,powerbi,sketchup,openroads,microstation,openbuildings,teklastructures,gsa]"}}
{{#foreach tags }}
<option value="{{name}}">{{name}}</option>
{{/foreach}}
@@ -14,10 +14,10 @@
</select>
to
<select id="to" name="to"
class="block inline-block sm:w-auto mt-1 pl-3 mx-3 pr-10 py-2 text-base font-extrabold shadow-lg text-white bg-blue-500 dark:bg-blue-900 border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md">
class="inline-block sm:w-auto mt-1 pl-3 mx-3 pr-10 py-2 text-base font-extrabold shadow-lg text-white bg-blue-500 dark:bg-blue-900 border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md">
<option value="Select a connector">To </option>
{{#get "tags" limit="all" include='count.posts' order='count.posts desc'
filter="slug:[rhino,grasshopper,revit,dynamo,excel,blender,autocad,civil3d,unity,unreal]"}}
filter="slug:[rhino,grasshopper,revit,dynamo,navisworks,excel,blender,autocad,civil3d,advancesteel,unity,unreal,archicad,openrail,etabs,sap2000,csibridge,safe,qgis,arcgis,topsolid,powerbi,sketchup,openroads,microstation,openbuildings,teklastructures,gsa]"}}
{{#foreach tags }}
<option value="{{name}}">{{name}}</option>
{{/foreach}}
@@ -32,15 +32,15 @@
</div>
<div class="relative flex items-center w-default mt-4 text-white"></div>
<div class="w-default pt-10 grid grid-cols-1 md:grid-cols-2 gap-0 gap-y-2 md:gap-6">
<div class="w-default pt-10 grid grid-cols-2 gap-0 gap-y-2 md:gap-6">
{{#get "tags" limit="all" include='count.posts' order='count.posts desc'
filter="slug:[rhino,grasshopper,revit,dynamo,excel,blender,autocad,civil3d,unity,unreal]"}}
filter="slug:[rhino,grasshopper,revit,dynamo,navisworks,excel,blender,autocad,civil3d,advancesteel,unity,unreal,archicad,openrail,etabs,sap2000,csibridge,safe,qgis,arcgis,topsolid,powerbi,sketchup,openroads,microstation,openbuildings,teklastructures,gsa]"}}
{{#foreach tags }}
<a href="{{url}}" class="group p-2 py-5 flex flex-row
shadow-sm hover:shadow-xl transition-shadow hover:ring dark:bg-gray-900 bg-white rounded-xl col-span-1 connector-card connector-{{name}}
<a href="{{url}}" class="group p-2 py-5 col-span-2 md:col-span-1 flex flex-row
shadow-sm hover:shadow-xl transition-shadow hover:ring dark:bg-gray-900 bg-white rounded-xl connector-card connector-{{name}}
">
<div class="flex flex-shrink-0 items-center justify-center mx-6">
<img class="mx-auto h-32 w-32 transition-transform transform group-hover:scale-110 object-contain"
<img class="mx-auto h-16 w-16 sm:h-32 sm:w-32 transition-transform transform group-hover:scale-110 object-contain"
src="{{feature_image}}">
</div>
<div class="flex flex-grow flex-col justify-center">
@@ -52,7 +52,7 @@
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3" />
</svg>
</h2>
<p class="text-sm dark:text-gray-400 text-gray-600 line-clamp-3">{{description}}</p>
<p class="text-sm dark:text-gray-400 text-gray-600 line-clamp-2 md:line-clamp-3">{{description}}</p>
</div>
</a>
{{/foreach}}
@@ -108,7 +108,7 @@
filterCards()
document.getElementById('clearbutton').style.display = 'none'
document.getElementById('tipcontainer').style.display = 'none'
document.getElementById('search-bar').value = ''
document.getElementById('search-bar').dispatchEvent(new Event('keyup'))
}
@@ -193,9 +193,9 @@
firstTag: "tutorials"
},
},
onSearchEnd: function (posts) {
onSearchEnd: function (posts) {
console.log(posts.length)
if( posts.length !== 0 ) {
if (posts.length !== 0) {
document.getElementById('some-tutorials').style.display = 'block'
} else {
document.getElementById('some-tutorials').style.display = 'none'
+1 -1
View File
@@ -24,7 +24,7 @@
<div class="swiper-container connector-swiper">
<div class="swiper-wrapper mb-10">
{{#get "tags" limit="all" include='count.posts' order='count.posts desc'
filter="slug:[rhino,grasshopper,revit,dynamo,excel,blender,autocad,civil3d,unity,unreal]"}}
filter="slug:[rhino,grasshopper,revit,dynamo,navisworks,excel,blender,autocad,civil3d,advancesteel,archicad,openrail,unity,unreal,etabs,sap2000,csibridge,safe,qgis,arcgis,topsolid,powerbi,sketchup,openroads,microstation,openbuildings,teklastructures,gsa]"}}
{{#foreach tags }}
<a href="{{url}}"
class="swiper-slide group dark:text-gray-200 text-gray-600 p-2 text-center content-center flex flex-wrap justify-center">
+9 -7
View File
@@ -63,7 +63,7 @@
</p>
<div class="relative h-96 w-full flex items-center justify-center bg-gradient-to-br from-white dark:from-gray-900 via-gray-200 dark:via-gray-700 dark:to-gray-800 to-white"
id="renderer">
<iframe src="https://speckle.xyz/embed?stream=3073b96e86"style="width: 100%; height:100%;"></iframe>
<iframe title="Speckle" src="https://app.speckle.systems/projects/24c98619ac/models/38639656b8#embed={%22isEnabled%22:true,%22isTransparent%22:true,%22hideControls%22:true,%22hideSelectionInfo%22:true,%22noScroll%22:true,%22manualLoad%22:true}" width="600" height="400" frameborder="0"></iframe>
</div>
<div class="w-full bg-gray-300 dark:bg-gray-900 text-gray-500 text-xs py-2 px-8">
$ ▸ superApp.js <span class="ml-3 opacity-50">#
@@ -73,14 +73,16 @@
<code class="language-javascript">
// Sample 3d viewer app
// See: https://github.com/specklesystems/speckle-server
import Viewer from '@speckle/viewer'
import { Viewer, SpeckleLoader } from '@speckle/viewer'
let viewer = new Viewer( )
const viewer = new Viewer();
await viewer.init();
// load a model
async function load( commitUrl ) {
await viewer.loadObject( commitUrl )
}</code></pre>
/** Create a loader for the speckle stream */
const loader = new SpeckleLoader(viewer.getWorldTree(), modelURL);
/** Load the speckle data */
await viewer.loadObject(loader, true);
</code></pre>
</div>
</div>
+14 -11
View File
@@ -2,25 +2,28 @@
<div class="w-full lg:w-1/2 text-center lg:text-left self-center">
<div class="prose dark:prose-dark prose-lg self-center max-w-none">
<h1 class="text-4xl tracking-tight font-extrabold text-gray-900 sm:text-5xl md:text-6xl">
<span class="block xl:inline text-gray-800 dark:text-gray-200">{{@site.description}}</span>
<span class="block xl:inline text-gray-800 dark:text-gray-200">
The Platform For 3D Data
</span>
</h1>
<p
class="text-base lg:w-prose text-gray-800 dark:text-gray-200 sm:text-lg md:text-xl md:max-w-6xl mt-2 md:mt-6 lg:mt-10">
Engineers, designers, hackers and entire
The world runs on 3D: designers, engineers, hackers and entire
organizations rely on us for interoperability,
automation and collaboration to deliver better
buildings, faster.
automation and collaboration to deliver better, together.
</p>
</div>
<div class="mt-5 md:mt-8">
<a href="/getstarted" class="items-center justify-center px-8 py-3 transition text-base font-medium rounded-md text-white bg-blue-500 hover:ring-4 hover:shadow-3xl md:py-4 md:text-lg md:px-10
<div class="mt-5 md:mt-8 flex items-center justify-center lg:justify-start">
<a href="https://app.speckle.systems" class="items-center justify-center px-8 py-3 transition text-base font-medium rounded-md text-white bg-blue-500 hover:ring-4 hover:shadow-3xl md:py-4 md:text-lg md:px-10
">
<span class="text-white no-underline">Get Started</span>
<span class="text-white no-underline">Register Now</span>
</a>
<a href="/download" class="hidden lg:flex ml-4 transition dark:text-gray-100 hover:text-blue-500">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
</svg>
<span class="ml-2">Download</span>
</a>
{{!-- <a href="https://calendly.com/speckle-ollie" target="_blank"
class="ml-2 items-center justify-center px-8 py-3 transition text-base font-medium rounded-md text-gray-900 dark:text-gray-50 hover:ring-2 hover:shadow-xl md:py-4 md:px-10">
Book A Demo
</a> --}}
</div>
</div>
<div class="w-full lg:w-1/2 p-4 mt-4 lg:mt-0">
File diff suppressed because one or more lines are too long
+23 -4
View File
@@ -1,7 +1,26 @@
<div class="relative w-default text-center pt-10 mb-10">
<h2 class="text-2xl pl-5 mb-5 text-gray-800 dark:text-gray-400"><span class="text-blue-600">Newsletter:</span> Subscribe to stay in touch with future updates!</h2>
<iframe class="mj-w-res-iframe" frameborder="0" scrolling="no"
marginheight="0" marginwidth="0" src="https://app.mailjet.com/widget/iframe/5q9H/Hvk"
width="100%"></iframe>
<!-- Begin Mailchimp Signup Form -->
<div id="mc_embed_signup">
<form action="https://systems.us12.list-manage.com/subscribe/post?u=6335a2a9916df44ec7c5e38d9&amp;id=3a18b28543&amp;f_id=0062b1e0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<div class="mc-field-group">
<input type="email" value="" placeholder="email" name="EMAIL" class="required email rounded-md" id="mce-EMAIL">
<input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="inline-flex items-center justify-center ml-3 px-4 py-2 border border-transparent transition rounded-md shadow-sm text-base font-medium text-white bg-blue-500 hover:ring-4 hover:shadow-xl"></div>
<span id="mce-EMAIL-HELPERTEXT" class="helper_text"></span>
</div>
<script type="text/javascript" src="https://app.mailjet.com/statics/js/iframeResizer.min.js"></script>
<div hidden="true"><input type="hidden" name="tags" value="10469769"></div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_6335a2a9916df44ec7c5e38d9_3a18b28543" tabindex="-1" value=""></div>
</form>
</div>
</div>
<script type="text/javascript" src="https://app.mailjet.com/statics/js/iframeResizer.min.js"></script>
+1 -1
View File
@@ -35,7 +35,7 @@
<p class="mt-5 pl-5 text-lg text-gray-800 dark:text-gray-400">
Star us ⭐️ on <a href="https://github.com/specklesystems/speckle-server"
target="_blank" class="text-blue-500 font-normal">Github</a>,
or stop by the <a href="http://speckle.community"
or stop by the <a href="https://speckle.community/invites/Fbk5j1wbRW"
target="_blank" class="text-blue-500 font-normal">Community
forum</a> for a chat!
</p>
+1 -1
View File
@@ -53,7 +53,7 @@
</div>
</a>
<a href="http://speckle.community" target="_blank"
<a href="https://speckle.community/invites/Fbk5j1wbRW" target="_blank"
class="-m-3 p-3 flex flex-col justify-between rounded-lg transition dark:bg-gray-950 hover:bg-blue-100 dark:hover:bg-gray-800">
<div class="flex items-center md:h-full lg:flex-col">
<div class="ml-4 md:flex-1 md:flex md:flex-col md:justify-between lg:ml-0 lg:mt-4">
+85 -107
View File
@@ -5,11 +5,13 @@
<div
x-data="{ mobileMenuOpen: false, usecasesMenu: false, developersMenu: false, resourcesMenu: false, flyoutMenuOpen: false, topBanner: null }"
x-init="topBanner = window.topBanner"
class="fixed top-0 shadow mt-0 w-full bg-white dark:bg-gray-900 dark:text-white z-20">
class="fixed top-0 shadow mt-0 w-full bg-white dark:bg-gray-900 dark:text-white" style="z-index: 1000;">
{{!-- Hiring notice --}}
{{#is "home"}}
<div x-cloak x-show="topBanner" x-html="topBanner" @mouseenter="usecasesMenu = false; resourcesMenu = false; developersMenu = false; flyoutMenuOpen = false;" class=" transition transform origin-top hover:scale-105">
</div>
{{/is}}
<div class="relative">
@@ -21,7 +23,7 @@
<div @mouseenter="usecasesMenu = false; resourcesMenu = false; developersMenu = false">
<a href="/" class="flex relative" style="margin-top:-4px;">
<img class="h-8 mr-2 " src="{{@site.logo}}" alt="logo">
<div class="text-2xl text-blue-500 title-font font-bold mr-5">
<div class="text-2xl text-blue-500 title-font font-bold mr-5 hidden">
Speckle
</div>
</a>
@@ -42,7 +44,7 @@
{{!-- Main Menu --}}
<div class="hidden lg:flex-1 lg:flex lg:items-center lg:justify-between">
<nav class="flex space-x-2">
<nav class="flex">
{{!-- use cases menu button --}}
@@ -70,8 +72,42 @@
<span>Tutorials</span>
</a>
</div>
<div class="relative">
<a href="https://speckle.community" target="_blank" @mouseenter="resourcesMenu = false; flyoutMenuOpen = false;"
class="transition hover:bg-blue-100 dark:hover:bg-gray-800 rounded-md px-2 text-gray-700 dark:text-gray-400 hover:text-blue-500 inline-flex items-center text-base font-medium">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2" fill="none" viewBox="0 0 24 24" stroke-width="2"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z" />
</svg>
<span>Community</span>
<svg xmlns="http://www.w3.org/2000/svg" class="ml-1 h-3 w-3" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
</svg>
</a>
</div>
<div class="relative" @mouseenter="resourcesMenu = false; flyoutMenuOpen = false;">
<div class="relative">
<a href="https://speckle.guide" target="_blank" @mouseenter="resourcesMenu = false; flyoutMenuOpen = false;"
class="transition hover:bg-blue-100 dark:hover:bg-gray-800 rounded-md px-2 text-gray-700 dark:text-gray-400 hover:text-blue-500 inline-flex items-center text-base font-medium">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2" fill="none" viewBox="0 0 24 24" stroke-width="2"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253" />
</svg>
<span>Docs</span>
<svg xmlns="http://www.w3.org/2000/svg" class="ml-1 h-3 w-3" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
</svg>
</a>
</div>
{{!-- <div class="relative" @mouseenter="resourcesMenu = false; flyoutMenuOpen = false;">
<a href="/developers"
class="transition hover:bg-blue-100 dark:hover:bg-gray-800 rounded-md px-2 text-gray-700 dark:text-gray-400 hover:text-blue-500 inline-flex items-center text-base font-medium">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2" fill="none" viewBox="0 0 24 24"
@@ -80,83 +116,9 @@
</svg>
<span>Devs</span>
</a>
</div>
</div> --}}
{{!-- Resources menu button --}}
<div class="relative ml-1">
<button type="button" @mouseenter="resourcesMenu = true; flyoutMenuOpen = false;"
@click="resourcesMenu = !resourcesMenu;" x-state:on="Item active" x-state:off="Item inactive"
:class="{ 'text-gray-900 dark:text-gray-50': resourcesMenu, 'text-gray-700 dark:text-gray-400': !resourcesMenu }"
class="transition hover:bg-blue-100 dark:hover:bg-gray-800 rounded-md px-2 text-gray-700 dark:text-gray-400 hover:text-blue-500 inline-flex items-center text-base font-medium">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" />
</svg>
<span>Resources</span>
</button>
<div x-description="'resources' flyout menu, show/hide based on flyout menu state." x-show="resourcesMenu"
@mouseleave="resourcesMenu = false;" x-transition:enter="transition ease-out duration-200"
x-transition:enter-start="opacity-0 -translate-y-1" x-transition:enter-end="opacity-100 translate-y-0"
x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0"
x-transition:leave-end="opacity-0 -translate-y-1"
class="absolute z-10 left-1/2 transform -translate-x-1/2 mt-3 px-2 w-screen max-w-xs sm:px-0">
<div class="rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 overflow-hidden">
<div class="relative grid gap-6 bg-white dark:bg-gray-900 px-5 py-6 sm:gap-8 sm:p-8">
<a href="/blog"
class="-m-3 p-3 block rounded-md hover:bg-gray-50 dark:hover:bg-gray-800 transition ease-in-out duration-150">
<p class="text-base font-medium text-gray-900 dark:text-gray-100">
Blog
</p>
<p class="mt-1 text-sm text-gray-500">
Announcements and other musings from the Speckle team.
</p>
</a>
<a href="https://speckle.guide" target="_blank"
class="-m-3 p-3 block rounded-md hover:bg-gray-50 dark:hover:bg-gray-800 transition ease-in-out duration-150">
<p class="text-base font-medium text-gray-900 dark:text-gray-100 flex items-center">
Docs
<svg xmlns="http://www.w3.org/2000/svg" class="ml-3 h-4 w-4" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
</svg>
</p>
<p class="mt-1 text-sm text-gray-500">
The reference manuals for Speckle, both for end users and developers alike.
</p>
</a>
<a href="https://speckle.community" target="_blank"
class="-m-3 p-3 block rounded-md hover:bg-gray-50 dark:hover:bg-gray-800 transition ease-in-out duration-150">
<p class="text-base font-medium text-gray-900 dark:text-gray-100 flex items-center">
Community Forum
<svg xmlns="http://www.w3.org/2000/svg" class="ml-3 h-4 w-4" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
</svg>
</p>
<p class="mt-1 text-sm text-gray-500">
Meet & get help from the Speckle community!
</p>
</a>
</div>
</div>
{{!-- {{> menus/resourcesMenu }} --}}
</div>
</div>
{{!-- About --}}
<div class="relative" @mouseenter="resourcesMenu = false; flyoutMenuOpen = true" @mouseleave="">
@@ -188,17 +150,26 @@
Speckle's mission and vision.
</p>
</a>
<a href="/partnerships"
<a href="/pricing"
class="-m-3 p-3 block rounded-md hover:bg-gray-50 dark:hover:bg-gray-800 transition ease-in-out duration-150">
<p class="text-base font-medium text-gray-900 dark:text-gray-100">
Partnerships
Pricing
</p>
<p class="mt-1 text-sm text-gray-500">
Speckle's here to help.
From self hosting to enterprise SaaS.
</p>
</a>
<a href="/blog"
class="-m-3 p-3 block rounded-md hover:bg-gray-50 dark:hover:bg-gray-800 transition ease-in-out duration-150">
<p class="text-base font-medium text-gray-900 dark:text-gray-100">
Blog
</p>
<p class="mt-1 text-sm text-gray-500">
Announcements and other musings from the Speckle team.
</p>
</a>
<a href="/contact"
class="-m-3 p-3 block rounded-md hover:bg-gray-50 dark:hover:bg-gray-800 transition ease-in-out duration-150">
<p class="text-base font-medium text-gray-900 dark:text-gray-100">
@@ -233,15 +204,23 @@
{{!-- CTA --}}
<div class="flex items-center lg:ml-12">
<a href="https://github.com/specklesystems/speckle-server" target="_blank"
class="mr-4 transition hover:text-gray-500">
<svg class="h-6 w-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<div class="flex items-center lg:ml-12" @mouseenter="resourcesMenu = false; flyoutMenuOpen = false;">
<a href="https://github.com/specklesystems" target="_blank"
class="mr-4 transition hover:text-gray-500 flex">
<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path fill-rule="evenodd"
d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"
clip-rule="evenodd"></path>
</svg>
<span class="ml-2 text-sm">Github</span>
</a>
<a href="/download"
class="mr-4 transition hover:text-gray-500 flex">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
</svg>
<span class="ml-2 text-sm">Download</span>
</a>
{{> navbarCTA }}
</div>
</div>
@@ -293,7 +272,7 @@
</div>
</a>
<a href="/developers"
{{!-- <a href="/developers"
class="-m-3 flex items-center p-3 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800">
<div
class="flex-shrink-0 flex items-center justify-center h-10 w-10 rounded-md bg-blue-500 text-white sm:h-12 sm:w-12">
@@ -306,7 +285,7 @@
<div class="ml-4 text-base font-medium text-gray-900 dark:text-gray-200">
Developers
</div>
</a>
</a> --}}
<a href="/tutorials"
class="-m-3 flex items-center p-3 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800">
@@ -323,19 +302,30 @@
Tutorials
</div>
</a>
<a href="/blog" class="-m-3 flex items-center p-3 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800">
<a href="https://speckle.community" target="_blank"
class="-m-3 flex items-center p-3 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800">
<div
class="flex-shrink-0 flex items-center justify-center h-10 w-10 rounded-md bg-blue-500 text-white sm:h-12 sm:w-12">
<svg class="h-6 w-6" x-description="Heroicon name: cursor-click" xmlns="http://www.w3.org/2000/svg"
fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122">
</path>
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z" />
</svg>
</div>
<div class="ml-4 text-base font-medium text-gray-900 dark:text-gray-200">
Community
</div>
</a>
<a href="https://speckle.guide" target="_blank" class="-m-3 flex items-center p-3 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800">
<div
class="flex-shrink-0 flex items-center justify-center h-10 w-10 rounded-md bg-blue-500 text-white sm:h-12 sm:w-12">
<svg class="h-6 w-6" x-description="Heroicon name: cursor-click" xmlns="http://www.w3.org/2000/svg"
fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253" />
</svg>
</div>
<div class="ml-4 text-base font-medium text-gray-900 dark:text-gray-200">
Blog
Docs
</div>
</a>
@@ -354,18 +344,6 @@
</div>
</a>
<div class="text-base">
<a href="https://speckle.community" target="_blank"
class="font-medium text-blue-500 hover:text-blue-500">
Community <span aria-hidden="true">→</span></a>
</div>
<div class="text-base">
<a href="https://speckle.guide" target="_blank" class="font-medium text-blue-500 hover:text-blue-500">
Docs <span aria-hidden="true">→</span></a>
</div>
<div class="text-base">
<a href="https://github.com/specklesystems/speckle-server" target="_blank"
class="font-medium text-blue-500 hover:text-blue-500">
+2 -2
View File
@@ -1,4 +1,4 @@
<a href="/getstarted"
<a href="https://app.speckle.systems" target="_blank"
class="inline-flex w-full items-center justify-center px-4 py-2 border border-transparent transition rounded-md shadow-sm text-base font-medium text-white bg-blue-500 hover:ring-4 hover:shadow-xl">
Get Started
Register Now
</a>
+2 -3
View File
@@ -33,7 +33,7 @@
</div>
{{!-- <div class="h-16 absolute bottom-0 inset-x-0"> --}}
<div class="self-end mt-10 ">
<a href="https://speckle.xyz/authn/register">
<a href="https://app.speckle.systems">
<button class="w-full bg-blue-500 hover:bg-blue-600 font-medium text-base text-white px-4 py-4 shadow-sm border-transparent rounded-md border hover:ring-4 hover:shadow-xl transition">
Register Now
</button>
@@ -50,7 +50,7 @@
Managed / On Prem
</h3>
<h2 class="font-bold text-4xl mt-5 dark:text-gray-200">
Enterprise
SaaS
</h2>
<p class="mb-5 mt-5 pt-5 border-t dark:border-gray-600 dark:text-gray-200">
Dedicated custom solutions for enterprises.
@@ -59,7 +59,6 @@
{{> extras/listItem value="Everything in the Free Plan"}}
{{> extras/listItem value="On prem or managed deployments"}}
{{> extras/listItem value="Custom subdomain"}}
{{> extras/listItem value="White labelling"}}
{{> extras/listItem value="SSO (Single sign-on)"}}
{{> extras/listItem value="SLA (Service Level Agreement)"}}
{{> extras/listItem value="Dedicated Support"}}
+1 -2
View File
@@ -23,7 +23,7 @@
</div>
<div class="flex items-center justify-center">
<a href="https://speckle.xyz/authn/register"
<a href="https://app.speckle.systems"
target="_blank"
class="mt-2 border-2 h-32 w-72 rounded-xl border-blue-500 bg-blue-500 hover:ring-4 transition p-4 flex text-white text-center justify-center">
<span class="self-center">Register Now</span>
@@ -46,7 +46,6 @@
{{> extras/listItem value="Everything in the Free Plan"}}
{{> extras/listItem value="On prem or managed deployments"}}
{{> extras/listItem value="Custom subdomain"}}
{{> extras/listItem value="White labelling"}}
{{> extras/listItem value="SSO (Single sign-on)"}}
{{> extras/listItem value="SLA (Service Level Agreement)"}}
{{> extras/listItem value="Dedicated Support"}}
+44 -43
View File
@@ -1,57 +1,58 @@
{{!< default}}
{{!< default}} {{#post}} <article class="relative max-w-2xl mx-auto px-4 md:px-0">
{{#post}}
{{!-- Header --}}
<article class="relative max-w-2xl mx-auto px-4 md:px-0">
{{!-- Header --}}
<header class="mt-10 prose prose-lg dark:prose-dark max-w-none">
<header class="mt-10 prose prose-lg dark:prose-dark max-w-none">
{{#if feature_image}}
<img class="gh-feature-image mx-auto w-full max-w-full"
srcset="{{img_url feature_image size="s"}} 300w,
{{img_url feature_image size="m"}} 600w,
{{img_url feature_image size="l"}} 1000w,
{{img_url feature_image size="xl"}} 2000w"
sizes="(max-width: 1000px) 1000px, 2000px"
loading="lazy" src="{{img_url feature_image size="xl"}}"
alt="{{title}}" />
{{/if}}
<h1 class="">
{{title}}
</h1>
{{#if custom_excerpt}}
<p>
{{custom_excerpt}}
</p>
{{/if}}
{{#if feature_image}}
<img class="gh-feature-image mx-auto w-full max-w-full" srcset="{{img_url feature_image size=" s"}} 300w, {{img_url
feature_image size="m" }} 600w, {{img_url feature_image size="l" }} 1000w, {{img_url feature_image size="xl" }}
2000w" sizes="(max-width: 1000px) 1000px, 2000px" loading="lazy" src="{{img_url feature_image size=" xl"}}"
alt="{{title}}" />
{{/if}}
<h1 class="">
{{title}}
</h1>
{{#if custom_excerpt}}
<p>
{{custom_excerpt}}
</p>
{{/if}}
</header>
</header>
{{!-- Content --}}
{{!-- Content --}}
<div class="prose prose-blue dark:prose-dark max-w-none mt-10">
<div class="prose prose-blue dark:prose-dark max-w-none mt-10 post-content">
{{content}}
{{content}}
</div>
</div>
{{!-- Read more --}}
<div
class="relative max-w-prose p-5 mx-auto mb-20 mt-20 pb-5 grid grid-cols-1 gap-4 bg-white dark:bg-gray-900 rounded-xl">
<p class="dark:text-gray-300">Feeback or comments? We'd love to hear from you in our
<a class="font-semibold text-blue-600" href="https://speckle.community/invites/Fbk5j1wbRW" target="_blank">community
forum!</a>
</p>
</div>
<div class="mt-8 grid gap-5 md:grid-cols-2 mb-10">
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:>{{id}}"
limit="2" order="id asc"}}
{{!-- Read more --}}
{{#foreach posts}}
{{> cardFancySmall}}
{{/foreach}}
{{/get}}
<div class="mt-8 grid gap-5 md:grid-cols-2 mb-10">
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:<
{{id}}" limit=" 2" order="id desc" }}
{{#foreach posts}} {{> cardFancySmall}}
{{/foreach}} {{/get}} {{> cardTag}} </div> </article>
{{/post}}
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:>{{id}}"
limit="2" order="id asc"}}
{{#foreach posts}}
{{> cardFancySmall}}
{{/foreach}}
{{/get}}
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:< {{id}}" limit=" 2" order="id desc" }} {{#foreach posts}} {{>
cardFancySmall}}
{{/foreach}} {{/get}} {{> cardTag}} </div>
</article>
{{/post}}
+7309 -4988
View File
File diff suppressed because it is too large Load Diff