ソースを参照

Add lesspass-website

pull/763/head
Guillaume Vincent 1年前
コミット
2e3c6bda81
32個のファイルの変更10195行の追加169行の削除
  1. +69
    -0
      packages/lesspass-website/.gitignore
  2. +14
    -0
      packages/lesspass-website/Dockerfile
  3. +1
    -0
      packages/lesspass-website/gatsby-browser.js
  4. +33
    -0
      packages/lesspass-website/gatsby-config.js
  5. +46
    -0
      packages/lesspass-website/nginx.conf
  6. +46
    -0
      packages/lesspass-website/package.json
  7. +3
    -0
      packages/lesspass-website/postcss.config.js
  8. +1
    -0
      packages/lesspass-website/src/declaration.d.ts
  9. バイナリ
      packages/lesspass-website/src/images/HowItWorks.png
  10. バイナリ
      packages/lesspass-website/src/images/cli-badge.png
  11. バイナリ
      packages/lesspass-website/src/images/download-on-the-App-Store.png
  12. +46
    -0
      packages/lesspass-website/src/images/download-on-the-App-Store.svg
  13. バイナリ
      packages/lesspass-website/src/images/get-amo-badge.png
  14. バイナリ
      packages/lesspass-website/src/images/get-chrome-badge.png
  15. バイナリ
      packages/lesspass-website/src/images/get-it-on-fdroid.png
  16. バイナリ
      packages/lesspass-website/src/images/google-play-badge.png
  17. バイナリ
      packages/lesspass-website/src/images/icon.png
  18. +6
    -0
      packages/lesspass-website/src/pages/404.tsx
  19. +335
    -0
      packages/lesspass-website/src/pages/index.tsx
  20. +3
    -0
      packages/lesspass-website/src/styles/global.css
  21. バイナリ
      packages/lesspass-website/static/favicon.ico
  22. バイナリ
      packages/lesspass-website/static/fonts/fontawesome-webfont.674f50d2.eot
  23. バイナリ
      packages/lesspass-website/static/fonts/fontawesome-webfont.af7ae505.woff2
  24. バイナリ
      packages/lesspass-website/static/fonts/fontawesome-webfont.b06871f2.ttf
  25. バイナリ
      packages/lesspass-website/static/fonts/fontawesome-webfont.fee66e71.woff
  26. +2671
    -0
      packages/lesspass-website/static/img/fontawesome-webfont.912ec66d.svg
  27. +12
    -0
      packages/lesspass-website/static/lesspass.min.css
  28. +22
    -0
      packages/lesspass-website/static/lesspass.min.js
  29. +1
    -0
      packages/lesspass-website/static/lesspass.min.js.map
  30. +7
    -0
      packages/lesspass-website/tailwind.config.js
  31. +11
    -0
      packages/lesspass-website/tsconfig.json
  32. +6868
    -169
      yarn.lock

+ 69
- 0
packages/lesspass-website/.gitignore ファイルの表示

@@ -0,0 +1,69 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# dotenv environment variable files
.env*

# gatsby files
.cache/
.gitignore

# Mac files
.DS_Store

# Yarn
yarn-error.log
.pnp/
.pnp.js
# Yarn Integrity file
.yarn-integrity

+ 14
- 0
packages/lesspass-website/Dockerfile ファイルの表示

@@ -0,0 +1,14 @@
FROM node:14-alpine AS builder
LABEL maintainer="LessPass <contact@lesspass.com>"
LABEL name="LessPass Frontend"
WORKDIR /opt/frontend
COPY package.json ./
RUN yarn install
COPY . /opt/frontend
RUN yarn build:static
RUN yarn build
FROM nginx:alpine
COPY --from=builder /opt/frontend/build /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

+ 1
- 0
packages/lesspass-website/gatsby-browser.js ファイルの表示

@@ -0,0 +1 @@
import "./src/styles/global.css";

+ 33
- 0
packages/lesspass-website/gatsby-config.js ファイルの表示

@@ -0,0 +1,33 @@
module.exports = {
siteMetadata: {
title: `LessPass`,
description: `stateless password manager`,
author: `Guillaume Vincent`,
},
plugins: [
`gatsby-plugin-react-helmet`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#3398eb`,
theme_color: `#3398eb`,
display: `minimal-ui`,
icon: `src/images/icon.png`,
},
},
`gatsby-plugin-postcss`,
`@wardpeet/gatsby-plugin-static-site`
],
}

+ 46
- 0
packages/lesspass-website/nginx.conf ファイルの表示

@@ -0,0 +1,46 @@
server {
listen 80;
server_name frontend;
server_tokens off;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

+ 46
- 0
packages/lesspass-website/package.json ファイルの表示

@@ -0,0 +1,46 @@
{
"name": "lesspass-website",
"description": "LessPass web site",
"version": "0.1.0",
"license": "GPL-3.0",
"author": "Guillaume Vincent <guillaume@oslab.fr>",
"dependencies": {
"@wardpeet/gatsby-plugin-static-site": "^0.3.0",
"gatsby": "^4.15.1",
"gatsby-image": "^3.11.0",
"gatsby-plugin-manifest": "^4.15.0",
"gatsby-plugin-offline": "^5.15.0",
"gatsby-plugin-postcss": "^5.15.0",
"gatsby-plugin-react-helmet": "^5.15.0",
"gatsby-plugin-sharp": "^4.15.0",
"gatsby-source-filesystem": "^4.15.0",
"gatsby-transformer-sharp": "^4.15.0",
"lesspass-pure": "^9.5.6",
"prettier": "2.6.2",
"prop-types": "^15.8.1",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-helmet": "^6.1.0",
"tailwindcss": "^3.0.24"
},
"devDependencies": {
"@types/react-helmet": "^6.1.5"
},
"keywords": [
"lesspass"
],
"scripts": {
"no-analytics": "gatsby telemetry --disable",
"build:static": "cp -r node_modules/lesspass-pure/dist/* static/",
"build": "yarn no-analytics && gatsby build",
"develop": "gatsby develop",
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"",
"start": "yarn no-analytics && yarn develop",
"serve": "gatsby serve",
"clean": "gatsby clean",
"test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1"
},
"engines": {
"node": ">=14.15.0"
}
}

+ 3
- 0
packages/lesspass-website/postcss.config.js ファイルの表示

@@ -0,0 +1,3 @@
module.exports = () => ({
plugins: [require("tailwindcss")],
});

+ 1
- 0
packages/lesspass-website/src/declaration.d.ts ファイルの表示

@@ -0,0 +1 @@
declare module "*.png";

バイナリ
packages/lesspass-website/src/images/HowItWorks.png ファイルの表示

変更前 変更後
幅: 1236  |  高さ: 370  |  サイズ: 55 KiB

バイナリ
packages/lesspass-website/src/images/cli-badge.png ファイルの表示

変更前 変更後
幅: 512  |  高さ: 512  |  サイズ: 15 KiB

バイナリ
packages/lesspass-website/src/images/download-on-the-App-Store.png ファイルの表示

変更前 変更後
幅: 323  |  高さ: 125  |  サイズ: 9.8 KiB

+ 46
- 0
packages/lesspass-website/src/images/download-on-the-App-Store.svg ファイルの表示

@@ -0,0 +1,46 @@
<svg id="livetype" xmlns="http://www.w3.org/2000/svg" width="119.66407" height="40" viewBox="0 0 119.66407 40">
<title>Download_on_the_App_Store_Badge_US-UK_RGB_blk_4SVG_092917</title>
<g>
<g>
<g>
<path d="M110.13477,0H9.53468c-.3667,0-.729,0-1.09473.002-.30615.002-.60986.00781-.91895.0127A13.21476,13.21476,0,0,0,5.5171.19141a6.66509,6.66509,0,0,0-1.90088.627A6.43779,6.43779,0,0,0,1.99757,1.99707,6.25844,6.25844,0,0,0,.81935,3.61816a6.60119,6.60119,0,0,0-.625,1.90332,12.993,12.993,0,0,0-.1792,2.002C.00587,7.83008.00489,8.1377,0,8.44434V31.5586c.00489.3105.00587.6113.01515.9219a12.99232,12.99232,0,0,0,.1792,2.0019,6.58756,6.58756,0,0,0,.625,1.9043A6.20778,6.20778,0,0,0,1.99757,38.001a6.27445,6.27445,0,0,0,1.61865,1.1787,6.70082,6.70082,0,0,0,1.90088.6308,13.45514,13.45514,0,0,0,2.0039.1768c.30909.0068.6128.0107.91895.0107C8.80567,40,9.168,40,9.53468,40H110.13477c.3594,0,.7246,0,1.084-.002.3047,0,.6172-.0039.9219-.0107a13.279,13.279,0,0,0,2-.1768,6.80432,6.80432,0,0,0,1.9082-.6308,6.27742,6.27742,0,0,0,1.6172-1.1787,6.39482,6.39482,0,0,0,1.1816-1.6143,6.60413,6.60413,0,0,0,.6191-1.9043,13.50643,13.50643,0,0,0,.1856-2.0019c.0039-.3106.0039-.6114.0039-.9219.0078-.3633.0078-.7246.0078-1.0938V9.53613c0-.36621,0-.72949-.0078-1.09179,0-.30664,0-.61426-.0039-.9209a13.5071,13.5071,0,0,0-.1856-2.002,6.6177,6.6177,0,0,0-.6191-1.90332,6.46619,6.46619,0,0,0-2.7988-2.7998,6.76754,6.76754,0,0,0-1.9082-.627,13.04394,13.04394,0,0,0-2-.17676c-.3047-.00488-.6172-.01074-.9219-.01269-.3594-.002-.7246-.002-1.084-.002Z" style="fill: #a6a6a6"/>
<path d="M8.44483,39.125c-.30468,0-.602-.0039-.90429-.0107a12.68714,12.68714,0,0,1-1.86914-.1631,5.88381,5.88381,0,0,1-1.65674-.5479,5.40573,5.40573,0,0,1-1.397-1.0166,5.32082,5.32082,0,0,1-1.02051-1.3965,5.72186,5.72186,0,0,1-.543-1.6572,12.41351,12.41351,0,0,1-.1665-1.875c-.00634-.2109-.01464-.9131-.01464-.9131V8.44434S.88185,7.75293.8877,7.5498a12.37039,12.37039,0,0,1,.16553-1.87207,5.7555,5.7555,0,0,1,.54346-1.6621A5.37349,5.37349,0,0,1,2.61183,2.61768,5.56543,5.56543,0,0,1,4.01417,1.59521a5.82309,5.82309,0,0,1,1.65332-.54394A12.58589,12.58589,0,0,1,7.543.88721L8.44532.875H111.21387l.9131.0127a12.38493,12.38493,0,0,1,1.8584.16259,5.93833,5.93833,0,0,1,1.6709.54785,5.59374,5.59374,0,0,1,2.415,2.41993,5.76267,5.76267,0,0,1,.5352,1.64892,12.995,12.995,0,0,1,.1738,1.88721c.0029.2832.0029.5874.0029.89014.0079.375.0079.73193.0079,1.09179V30.4648c0,.3633,0,.7178-.0079,1.0752,0,.3252,0,.6231-.0039.9297a12.73126,12.73126,0,0,1-.1709,1.8535,5.739,5.739,0,0,1-.54,1.67,5.48029,5.48029,0,0,1-1.0156,1.3857,5.4129,5.4129,0,0,1-1.3994,1.0225,5.86168,5.86168,0,0,1-1.668.5498,12.54218,12.54218,0,0,1-1.8692.1631c-.2929.0068-.5996.0107-.8974.0107l-1.084.002Z"/>
</g>
<g id="_Group_" data-name="&lt;Group&gt;">
<g id="_Group_2" data-name="&lt;Group&gt;">
<g id="_Group_3" data-name="&lt;Group&gt;">
<path id="_Path_" data-name="&lt;Path&gt;" d="M24.76888,20.30068a4.94881,4.94881,0,0,1,2.35656-4.15206,5.06566,5.06566,0,0,0-3.99116-2.15768c-1.67924-.17626-3.30719,1.00483-4.1629,1.00483-.87227,0-2.18977-.98733-3.6085-.95814a5.31529,5.31529,0,0,0-4.47292,2.72787c-1.934,3.34842-.49141,8.26947,1.3612,10.97608.9269,1.32535,2.01018,2.8058,3.42763,2.7533,1.38706-.05753,1.9051-.88448,3.5794-.88448,1.65876,0,2.14479.88448,3.591.8511,1.48838-.02416,2.42613-1.33124,3.32051-2.66914a10.962,10.962,0,0,0,1.51842-3.09251A4.78205,4.78205,0,0,1,24.76888,20.30068Z" style="fill: #fff"/>
<path id="_Path_2" data-name="&lt;Path&gt;" d="M22.03725,12.21089a4.87248,4.87248,0,0,0,1.11452-3.49062,4.95746,4.95746,0,0,0-3.20758,1.65961,4.63634,4.63634,0,0,0-1.14371,3.36139A4.09905,4.09905,0,0,0,22.03725,12.21089Z" style="fill: #fff"/>
</g>
</g>
<g>
<path d="M42.30227,27.13965h-4.7334l-1.13672,3.35645H34.42727l4.4834-12.418h2.083l4.4834,12.418H43.438ZM38.0591,25.59082h3.752l-1.84961-5.44727h-.05176Z" style="fill: #fff"/>
<path d="M55.15969,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H48.4302v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C53.645,21.34766,55.15969,23.16406,55.15969,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C52.30227,29.01563,53.24953,27.81934,53.24953,25.96973Z" style="fill: #fff"/>
<path d="M65.12453,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H58.395v1.50586h.03418A3.21162,3.21162,0,0,1,61.312,21.34766C63.60988,21.34766,65.12453,23.16406,65.12453,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C62.26711,29.01563,63.21438,27.81934,63.21438,25.96973Z" style="fill: #fff"/>
<path d="M71.71047,27.03613c.1377,1.23145,1.334,2.04,2.96875,2.04,1.56641,0,2.69336-.80859,2.69336-1.91895,0-.96387-.67969-1.541-2.28906-1.93652l-1.60937-.3877c-2.28027-.55078-3.33887-1.61719-3.33887-3.34766,0-2.14258,1.86719-3.61426,4.51855-3.61426,2.624,0,4.42285,1.47168,4.4834,3.61426h-1.876c-.1123-1.23926-1.13672-1.9873-2.63379-1.9873s-2.52148.75684-2.52148,1.8584c0,.87793.6543,1.39453,2.25488,1.79l1.36816.33594c2.54785.60254,3.60645,1.626,3.60645,3.44238,0,2.32324-1.85059,3.77832-4.79395,3.77832-2.75391,0-4.61328-1.4209-4.7334-3.667Z" style="fill: #fff"/>
<path d="M83.34621,19.2998v2.14258h1.72168v1.47168H83.34621v4.99121c0,.77539.34473,1.13672,1.10156,1.13672a5.80752,5.80752,0,0,0,.61133-.043v1.46289a5.10351,5.10351,0,0,1-1.03223.08594c-1.833,0-2.54785-.68848-2.54785-2.44434V22.91406H80.16262V21.44238H81.479V19.2998Z" style="fill: #fff"/>
<path d="M86.065,25.96973c0-2.84863,1.67773-4.63867,4.29395-4.63867,2.625,0,4.29492,1.79,4.29492,4.63867,0,2.85645-1.66113,4.63867-4.29492,4.63867C87.72609,30.6084,86.065,28.82617,86.065,25.96973Zm6.69531,0c0-1.9541-.89551-3.10742-2.40137-3.10742s-2.40039,1.16211-2.40039,3.10742c0,1.96191.89453,3.10645,2.40039,3.10645S92.76027,27.93164,92.76027,25.96973Z" style="fill: #fff"/>
<path d="M96.18606,21.44238h1.77246v1.541h.043a2.1594,2.1594,0,0,1,2.17773-1.63574,2.86616,2.86616,0,0,1,.63672.06934v1.73828a2.59794,2.59794,0,0,0-.835-.1123,1.87264,1.87264,0,0,0-1.93652,2.083v5.37012h-1.8584Z" style="fill: #fff"/>
<path d="M109.3843,27.83691c-.25,1.64355-1.85059,2.77148-3.89844,2.77148-2.63379,0-4.26855-1.76465-4.26855-4.5957,0-2.83984,1.64355-4.68164,4.19043-4.68164,2.50488,0,4.08008,1.7207,4.08008,4.46582v.63672h-6.39453v.1123a2.358,2.358,0,0,0,2.43555,2.56445,2.04834,2.04834,0,0,0,2.09082-1.27344Zm-6.28223-2.70215h4.52637a2.1773,2.1773,0,0,0-2.2207-2.29785A2.292,2.292,0,0,0,103.10207,25.13477Z" style="fill: #fff"/>
</g>
</g>
</g>
<g id="_Group_4" data-name="&lt;Group&gt;">
<g>
<path d="M37.82619,8.731a2.63964,2.63964,0,0,1,2.80762,2.96484c0,1.90625-1.03027,3.002-2.80762,3.002H35.67092V8.731Zm-1.22852,5.123h1.125a1.87588,1.87588,0,0,0,1.96777-2.146,1.881,1.881,0,0,0-1.96777-2.13379h-1.125Z" style="fill: #fff"/>
<path d="M41.68068,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C44.57522,13.99463,45.01369,13.42432,45.01369,12.44434Z" style="fill: #fff"/>
<path d="M51.57326,14.69775h-.92187l-.93066-3.31641h-.07031l-.92676,3.31641h-.91309l-1.24121-4.50293h.90137l.80664,3.436h.06641l.92578-3.436h.85254l.92578,3.436h.07031l.80273-3.436h.88867Z" style="fill: #fff"/>
<path d="M53.85354,10.19482H54.709v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915h-.88867V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
<path d="M59.09377,8.437h.88867v6.26074h-.88867Z" style="fill: #fff"/>
<path d="M61.21779,12.44434a2.13346,2.13346,0,1,1,4.24756,0,2.1338,2.1338,0,1,1-4.24756,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C64.11232,13.99463,64.5508,13.42432,64.5508,12.44434Z" style="fill: #fff"/>
<path d="M66.4009,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76563.562,1.76563,1.51318v3.07666h-.85547v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,66.4009,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,69.29543,13.03955Z" style="fill: #fff"/>
<path d="M71.34816,12.44434c0-1.42285.73145-2.32422,1.86914-2.32422a1.484,1.484,0,0,1,1.38086.79h.06641V8.437h.88867v6.26074h-.85156v-.71143h-.07031a1.56284,1.56284,0,0,1-1.41406.78564C72.0718,14.772,71.34816,13.87061,71.34816,12.44434Zm.918,0c0,.95508.4502,1.52979,1.20313,1.52979.749,0,1.21191-.583,1.21191-1.52588,0-.93848-.46777-1.52979-1.21191-1.52979C72.72121,10.91846,72.26613,11.49707,72.26613,12.44434Z" style="fill: #fff"/>
<path d="M79.23,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C82.12453,13.99463,82.563,13.42432,82.563,12.44434Z" style="fill: #fff"/>
<path d="M84.66945,10.19482h.85547v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915H87.605V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
<path d="M93.51516,9.07373v1.1416h.97559v.74854h-.97559V13.2793c0,.47168.19434.67822.63672.67822a2.96657,2.96657,0,0,0,.33887-.02051v.74023a2.9155,2.9155,0,0,1-.4834.04541c-.98828,0-1.38184-.34766-1.38184-1.21582v-2.543h-.71484v-.74854h.71484V9.07373Z" style="fill: #fff"/>
<path d="M95.70461,8.437h.88086v2.48145h.07031a1.3856,1.3856,0,0,1,1.373-.80664,1.48339,1.48339,0,0,1,1.55078,1.67871v2.90723H98.69v-2.688c0-.71924-.335-1.0835-.96289-1.0835a1.05194,1.05194,0,0,0-1.13379,1.1416v2.62988h-.88867Z" style="fill: #fff"/>
<path d="M104.76125,13.48193a1.828,1.828,0,0,1-1.95117,1.30273A2.04531,2.04531,0,0,1,100.73,12.46045a2.07685,2.07685,0,0,1,2.07617-2.35254c1.25293,0,2.00879.856,2.00879,2.27V12.688h-3.17969v.0498a1.1902,1.1902,0,0,0,1.19922,1.29,1.07934,1.07934,0,0,0,1.07129-.5459Zm-3.126-1.45117h2.27441a1.08647,1.08647,0,0,0-1.1084-1.1665A1.15162,1.15162,0,0,0,101.63527,12.03076Z" style="fill: #fff"/>
</g>
</g>
</g>
</svg>

バイナリ
packages/lesspass-website/src/images/get-amo-badge.png ファイルの表示

変更前 変更後
幅: 172  |  高さ: 60  |  サイズ: 5.3 KiB

バイナリ
packages/lesspass-website/src/images/get-chrome-badge.png ファイルの表示

変更前 変更後
幅: 496  |  高さ: 150  |  サイズ: 9.0 KiB

バイナリ
packages/lesspass-website/src/images/get-it-on-fdroid.png ファイルの表示

変更前 変更後
幅: 646  |  高さ: 250  |  サイズ: 14 KiB

バイナリ
packages/lesspass-website/src/images/google-play-badge.png ファイルの表示

変更前 変更後
幅: 646  |  高さ: 250  |  サイズ: 14 KiB

バイナリ
packages/lesspass-website/src/images/icon.png ファイルの表示

変更前 変更後
幅: 1024  |  高さ: 1024  |  サイズ: 22 KiB

+ 6
- 0
packages/lesspass-website/src/pages/404.tsx ファイルの表示

@@ -0,0 +1,6 @@
import React from "react"
import { PageProps } from "gatsby"

export default function NotFoundPage(props: PageProps) {
return <div>404</div>
}

+ 335
- 0
packages/lesspass-website/src/pages/index.tsx ファイルの表示

@@ -0,0 +1,335 @@
import React, { useEffect } from "react";
import { withPrefix } from "gatsby";
import Helmet from "react-helmet";
import GooglePlayBadge from "../images/google-play-badge.png";
import ApplePlayBadge from "../images/download-on-the-App-Store.png";
import FDroidBadge from "../images/get-it-on-fdroid.png";
import ChromeBadge from "../images/get-chrome-badge.png";
import AMOBadge from "../images/get-amo-badge.png";
import CLIBadge from "../images/cli-badge.png";
import HowItWorks from "../images/HowItWorks.png";

export default function IndexPage() {
const currentYear = new Date().getFullYear();

useEffect(() => {
const script = document.createElement("script");
script.src = withPrefix("lesspass.min.js");
script.async = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
};
}, []);

return (
<>
<div className="relative bg-gray-800 overflow-hidden">
<div className="relative pt-6">
<header className="mx-auto max-w-7xl px-4">
<h1 className="text-4xl tracking-tight text-white sm:leading-none lg:text-5xl xl:text-6xl">
LessPass
</h1>
</header>
</div>
</div>
<div className="relative bg-gray-800 overflow-hidden">
<Helmet>
<link href="lesspass.min.css" rel="stylesheet" />
</Helmet>
<div className="relative pt-6 pb-16 sm:pb-24">
<main className="mt-16 sm:mt-24">
<div className="mx-auto max-w-7xl">
<div className="lg:grid lg:grid-cols-12 lg:gap-8">
<div className="px-4 sm:px-6 sm:text-center md:max-w-2xl md:mx-auto lg:col-span-6 lg:text-left lg:flex lg:items-center">
<div>
<h1 className="mt-4 text-4xl tracking-tight font-extrabold text-white sm:mt-5 sm:leading-none lg:mt-6 lg:text-5xl xl:text-6xl">
<span className="md:block">Stateless</span>{" "}
<span className="md:block">password manager</span>
</h1>
<p className="mt-3 text-base text-gray-300 sm:mt-5 sm:text-xl lg:text-lg xl:text-xl">
Stop wasting your time synchronizing your encrypted vault.
Remember one master password to access your passwords,
anywhere, anytime, from any device. No sync needed.
</p>
</div>
</div>
<div className="mt-16 sm:mt-24 lg:mt-0 lg:col-span-6">
<div className="bg-white sm:max-w-md sm:w-full sm:mx-auto sm:rounded-lg sm:overflow-hidden">
<div
style={{ minHeight: "449px" }}
className="lesspass--unbordered lesspass--full-width"
>
<div id="lesspass"></div>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
<div className="bg-gray-50 py-16 overflow-hidden lg:py-24">
<div className="relative max-w-xl mx-auto px-4 sm:px-6 lg:px-8 lg:max-w-7xl">
<div className="relative mt-12 lg:mt-24 lg:grid lg:grid-cols-2 lg:gap-8 lg:items-center">
<div className="relative">
<h3 className="text-2xl font-extrabold text-gray-900 tracking-tight sm:text-3xl">
Compute your password offline
</h3>
<p className="mt-3 text-lg text-gray-500">
LessPass computes a unique password using a site, login, and a
master password. You don't need to sync a password vault across
every device or to the cloud, because LessPass works offline!
</p>
</div>

<div className="mt-10 -mx-4 relative lg:mt-0" aria-hidden="true">
<svg
className="absolute left-1/2 transform -translate-x-1/2 translate-y-16 lg:hidden"
width={784}
height={404}
fill="none"
viewBox="0 0 784 404"
>
<defs>
<pattern
id="ca9667ae-9f92-4be7-abcb-9e3d727f2941"
x={0}
y={0}
width={20}
height={20}
patternUnits="userSpaceOnUse"
>
<rect
x={0}
y={0}
width={4}
height={4}
className="text-gray-200"
fill="currentColor"
/>
</pattern>
</defs>
<rect
width={784}
height={404}
fill="url(#ca9667ae-9f92-4be7-abcb-9e3d727f2941)"
/>
</svg>
<img
className="relative mx-auto"
width={490}
src={HowItWorks}
alt="How it works"
/>
</div>
</div>
</div>
</div>
<div className="bg-gray-50">
<div className="max-w-7xl mx-auto py-12 px-4 sm:py-16 sm:px-6 lg:px-8 lg:py-20">
<div className="max-w-4xl mx-auto text-center">
<h2 className="text-3xl font-extrabold text-gray-900 sm:text-4xl">
Open Source
</h2>
<p className="mt-3 text-xl text-gray-500 sm:mt-4">
To us, a password manager is only as secure as it is transparent.
That's why LessPass is fully open source. Don't just take our word
for it, take a peek under the hood and see for yourself!
</p>
</div>
<dl className="mt-10 text-center sm:max-w-3xl sm:mx-auto sm:grid sm:grid-cols-3 sm:gap-8">
<div className="flex flex-col">
<dt className="order-2 mt-2 text-lg leading-6 font-medium text-gray-500">
Commits
</dt>
<dd className="order-1 text-5xl font-extrabold text-gray-900">
2200+
</dd>
</div>
<div className="flex flex-col mt-10 sm:mt-0">
<dt className="order-2 mt-2 text-lg leading-6 font-medium text-gray-500">
Contributors
</dt>
<dd className="order-1 text-5xl font-extrabold text-gray-900">
50+
</dd>
</div>
<div className="flex flex-col mt-10 sm:mt-0">
<dt className="order-2 mt-2 text-lg leading-6 font-medium text-gray-500">
Stars
</dt>
<dd className="order-1 text-5xl font-extrabold text-gray-900">
5k
</dd>
</div>
</dl>
</div>
<div className="bg-gray-50">
<div className="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8">
<h2 className="text-center text-3xl font-extrabold text-gray-900 sm:text-4xl">
Use it everywhere
</h2>

<div className="mt-6 grid grid-cols-2 gap-0.5 md:grid-cols-3 lg:mt-8">
<div className="col-span-1 flex justify-center py-8 px-8">
<a href="https://play.google.com/store/apps/details?id=com.lesspass.android&hl=en">
<img
className="max-h-20"
src={GooglePlayBadge}
alt="Google Play badge"
/>
</a>
</div>
<div className="col-span-1 flex justify-center py-8 px-8">
<a href="https://apps.apple.com/app/id1531215924">
<img
className="max-h-20"
src={ApplePlayBadge}
alt="Apple Play badge"
/>
</a>
</div>
<div className="col-span-1 flex justify-center py-8 px-8">
<a href="https://f-droid.org/en/packages/com.lesspass.android/">
<img
className="max-h-20"
src={FDroidBadge}
alt="FDroid badge"
/>
</a>
</div>
<div className="col-span-1 flex justify-center py-8 px-8">
<a href="https://chrome.google.com/webstore/detail/lesspass/lcmbpoclaodbgkbjafnkbbinogcbnjih">
<img
className="max-h-20"
src={ChromeBadge}
alt="Chrome badge"
/>
</a>
</div>
<div className="col-span-1 flex justify-center py-8 px-8">
<a href="https://addons.mozilla.org/en-US/firefox/addon/lesspass/">
<img className="max-h-16" src={AMOBadge} alt="AMO badge" />
</a>
</div>
<div className="col-span-1 flex justify-center py-8 px-8">
<a href="https://github.com/lesspass/lesspass#cli">
<img className="max-h-16" src={CLIBadge} alt="Cli badge" />
</a>
</div>
</div>
</div>
</div>
</div>
<div className="bg-gray-50 pt-16 pb-20 px-4 sm:px-6 lg:pt-24 lg:pb-28 lg:px-8">
<div className="relative max-w-lg mx-auto divide-y-2 divide-gray-200 lg:max-w-7xl">
<div>
<h2 className="text-3xl tracking-tight font-extrabold text-gray-900 sm:text-4xl">
Recent publications
</h2>
<p className="mt-3 text-xl text-gray-500 sm:mt-4">
Read the latest blog posts from LessPass
</p>
</div>
<div className="mt-12 grid gap-16 pt-12 lg:grid-cols-3 lg:gap-x-5 lg:gap-y-12">
<div>
<div>
<span className="bg-blue-100 text-blue-800 inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium">
article
</span>
</div>
<a
href="https://blog.lesspass.com/2022-12-29/decommissioning-lesspass-database"
className="block mt-4"
>
<p className="text-xl font-semibold text-gray-900">
Decommissioning LessPass Database
</p>
<p className="mt-3 text-base text-gray-500">
LessPass Database server will be turned off on March 1th,
2023. The static version of LessPass, the web extension and
the mobile versions remain in place.
</p>
</a>
</div>
<div>
<div>
<span className="bg-blue-100 text-blue-800 inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium">
article
</span>
</div>
<a
href="https://blog.lesspass.com/2016-11-10/why-lesspass-change-license"
className="block mt-4"
>
<p className="text-xl font-semibold text-gray-900">
Why LessPass changed its license?
</p>
<p className="mt-3 text-base text-gray-500">
An open community starts with a good license. That’s why we
decided to change LessPass license from MIT to GPLv3.
</p>
</a>
</div>
<div>
<div>
<span className="bg-blue-100 text-blue-800 inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium">
article
</span>
</div>
<a
href="https://blog.lesspass.com/2016-10-19/how-does-it-work"
className="block mt-4"
>
<p className="text-xl font-semibold text-gray-900">
LessPass How Does It Work?
</p>
<p className="mt-3 text-base text-gray-500">
Managing your Internet passwords is not easy. You probably use
a password manager to help you. The system is simple, the tool
generates random passwords whenever you need them and saves
them into a file protected with a strong password. This system
is very robust, you only need to remember one password to rule
them all! Now you have a unique password for each site on the
Internet.
</p>
</a>
</div>
</div>
</div>
</div>
<footer className="bg-gray-50">
<div className="max-w-7xl mx-auto py-12 px-4 overflow-hidden sm:px-6 lg:px-8">
<div className="mt-8 flex justify-center space-x-6">
<a
href="https://twitter.com/guillaume20100"
className="text-gray-400 hover:text-gray-500"
>
<span className="sr-only">Twitter</span>
<svg fill="currentColor" viewBox="0 0 24 24" className="h-6 w-6">
<path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84" />
</svg>
</a>
<a
href="https://github.com/lesspass/lesspass/"
className="text-gray-400 hover:text-gray-500"
>
<span className="sr-only">Github</span>
<svg fill="currentColor" viewBox="0 0 24 24" className="h-6 w-6">
<path
fillRule="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"
clipRule="evenodd"
/>
</svg>
</a>
</div>
<p className="mt-8 text-center text-base text-gray-400">
&copy; 2015-{currentYear} LessPass. All rights reserved.
</p>
</div>
</footer>
</>
);
}

+ 3
- 0
packages/lesspass-website/src/styles/global.css ファイルの表示

@@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

バイナリ
packages/lesspass-website/static/favicon.ico ファイルの表示

変更前 変更後

バイナリ
packages/lesspass-website/static/fonts/fontawesome-webfont.674f50d2.eot ファイルの表示


バイナリ
packages/lesspass-website/static/fonts/fontawesome-webfont.af7ae505.woff2 ファイルの表示


バイナリ
packages/lesspass-website/static/fonts/fontawesome-webfont.b06871f2.ttf ファイルの表示


バイナリ
packages/lesspass-website/static/fonts/fontawesome-webfont.fee66e71.woff ファイルの表示


+ 2671
- 0
packages/lesspass-website/static/img/fontawesome-webfont.912ec66d.svg
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 12
- 0
packages/lesspass-website/static/lesspass.min.css
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 22
- 0
packages/lesspass-website/static/lesspass.min.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 0
packages/lesspass-website/static/lesspass.min.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 7
- 0
packages/lesspass-website/tailwind.config.js ファイルの表示

@@ -0,0 +1,7 @@
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}"],
theme: {
extend: {},
},
plugins: [],
};

+ 11
- 0
packages/lesspass-website/tsconfig.json ファイルの表示

@@ -0,0 +1,11 @@
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"jsx": "react",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}

+ 6868
- 169
yarn.lock
ファイル差分が大きすぎるため省略します
ファイルの表示


読み込み中…
キャンセル
保存