├── .gitignore ├── README.md ├── babel.config.js ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ └── preview.gif ├── components │ ├── Card.vue │ └── Header.vue ├── initalCards.js ├── main.js └── styles │ ├── base.css │ ├── index.js │ └── main.css └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UI Clone simples do Trello 2 | Clonando o **Drag and Drop** do Trello com Vue, HTML e CSS 3 | 4 | | :placard: Vitrine.Dev | | 5 | | ------------- | --- | 6 | | :sparkles: Nome | **Trello UI Clone** 7 | | :label: Tecnologias | Vue, Javascript, HTML, CSS 8 | | :rocket: URL | - 9 | | :fire: Desafio | https://www.youtube.com/channel/UCS5IxD9kAh5uO5ZdBtXPr8g 10 | 11 | Scrollando pelo YouTube acabei encontrando esse tutorial incrível do canal do [Fábio de Abreu](https://www.youtube.com/channel/UCS5IxD9kAh5uO5ZdBtXPr8g): https://www.youtube.com/watch?v=YmJzRpMFdDY. Precisei colocar em prática, já que sempre quis fazer algo parecido com a funcionalidade de arrastar cards do Trello. 12 | 13 | ## Preview 14 | 15 | 16 | ![](https://github.com/natalia-fs/trello-ui-clone-vue/blob/master/src/assets/preview.gif?raw=true#vitrinedev) 17 | 18 | 19 | 20 | 25 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Trello-VueClone", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "collect.js": "^4.28.6", 12 | "core-js": "^3.6.5", 13 | "vue": "^2.6.11", 14 | "vue-smooth-dnd": "^0.8.1" 15 | }, 16 | "devDependencies": { 17 | "@vue/cli-plugin-babel": "~4.5.0", 18 | "@vue/cli-plugin-eslint": "~4.5.0", 19 | "@vue/cli-service": "~4.5.0", 20 | "babel-eslint": "^10.1.0", 21 | "eslint": "^6.7.2", 22 | "eslint-plugin-vue": "^6.2.2", 23 | "vue-template-compiler": "^2.6.11" 24 | }, 25 | "eslintConfig": { 26 | "root": true, 27 | "env": { 28 | "node": true 29 | }, 30 | "extends": [ 31 | "plugin:vue/essential", 32 | "eslint:recommended" 33 | ], 34 | "parserOptions": { 35 | "parser": "babel-eslint" 36 | }, 37 | "rules": {} 38 | }, 39 | "browserslist": [ 40 | "> 1%", 41 | "last 2 versions", 42 | "not dead" 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natalia-fs/trello-ui-clone-vue/8bbfd187317ba85cb3e56f47e982775904da197c/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Trello - VueClone 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 85 | 86 | 115 | -------------------------------------------------------------------------------- /src/assets/preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natalia-fs/trello-ui-clone-vue/8bbfd187317ba85cb3e56f47e982775904da197c/src/assets/preview.gif -------------------------------------------------------------------------------- /src/components/Card.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /src/components/Header.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /src/initalCards.js: -------------------------------------------------------------------------------- 1 | // Dados para testar a aplicação 2 | export default { 3 | backlog: [ 4 | { id: 1, text: "Tarefa 1 - Manutenção" }, 5 | { id: 2, text: "Tarefa 2 - Refatoração de tela" }, 6 | { id: 3, text: "Tarefa 3 - Refatoração de tela de aplicativo" }, 7 | ], 8 | dev: [ 9 | { id: 4, text: "Crud" }, 10 | { id: 5, text: "Dashboard" }, 11 | ], 12 | test: [ 13 | { id: 6, text: "Testes do aplicativo" }, 14 | { id: 7, text: "Testes do back-end" }, 15 | { id: 8, text: "Testes do front-end" }, 16 | ] 17 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import "./styles" 4 | 5 | Vue.config.productionTip = false 6 | 7 | new Vue({ 8 | render: h => h(App), 9 | }).$mount('#app') 10 | -------------------------------------------------------------------------------- /src/styles/base.css: -------------------------------------------------------------------------------- 1 | :root{ 2 | --color-purple-ligth: #89609E; 3 | --color-purple: #755287; 4 | --color-grey: #E0E0E0; 5 | --color-white: #FAFAFA; 6 | } -------------------------------------------------------------------------------- /src/styles/index.js: -------------------------------------------------------------------------------- 1 | import "./base.css"; 2 | import "./main.css"; -------------------------------------------------------------------------------- /src/styles/main.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Lato&display=swap"); 2 | 3 | *, 4 | *::before, 5 | *::after { 6 | margin: 0; 7 | padding: 0; 8 | box-sizing: border-box; 9 | } 10 | 11 | html { 12 | font-size: 62.5%; 13 | } 14 | 15 | body { 16 | font-family: "Lato", sans-serif; 17 | background: var(--color-purple-ligth); 18 | } --------------------------------------------------------------------------------