Skip to content
Snippets Groups Projects
Commit 8d751a0b authored by Dimitrie Hoekstra's avatar Dimitrie Hoekstra
Browse files

added design files + spec functionality + updated readme

parent 00f6af35
No related branches found
No related tags found
No related merge requests found
Showing
with 1955 additions and 2 deletions
Loading
Loading
@@ -6,13 +6,24 @@ Contains all resources and information UX Designers need.
 
![gitlab-cover-image](https://gitlab.com/gitlab-org/gitlab-design/raw/master/gitlab-cover-image.jpg)
 
## Get started
## Repository SUPERPOWERS :stars:
- Automatic Sketch previews based on a pre-commit hook
*The pre-commit hook will auto generate preview images out of your Sketch pages with sketchtool*
- Semi automatic Sketch spec previews with Continuous Integration
*Whenever you create a spec preview folder with the [Sketch Measure Plugin](https://github.com/utom/sketch-measure), append `spec-previews` to the name of the generated directory and it will be visible by an URL. Search in [https://gitlab-org.gitlab.io/gitlab-design](https://gitlab-org.gitlab.io/gitlab-design)
### Activating them!
 
1. Have a Mac with [Sketch](https://www.sketchapp.com/) installed in the /Applications folder
2. Copy the `pre-commit` file into your `.git/hooks/` folder
- *The pre-commit hook will auto generate preview images out of your sketch pages*
- *[Issue for Autogenerated Sketch Previews Discussion](https://gitlab.com/gitlab-org/gitlab-design/issues/15)*
4. Install [Sketch Toolbox](http://sketchtoolbox.com/)
5. Install [Sketch Measure Plugin](https://github.com/utom/sketch-measure) with the Sketch Toolbox
3. Read on :)
 
## Repository Organization
Loading
Loading
@@ -90,6 +101,8 @@ All designs mockups and details are delivered in the issue that describes the fe
 
> Designers and developers often have different priorities, even though everyone is working toward one common goal: a fantastic, delightful, functional product. At Google, we're always working on ways to bridge this gap through unified spec formats and tools, so that intricate details are never lost in translation and things get done the way they're intended the first time - [Designer & Developer Communication Google IO 2016](https://www.youtube.com/watch?v=ZFyK1J5NrVk)
 
Spec previews can be generated with the one of the [SUPERPOWERS](#GitLab-Design-Kit)!
When additional detail is needed, developers will ask for this. Take inspiration out of the link above if needed.
 
## Archive
Loading
Loading
image: ruby:alpine
pages:
stage: deploy
script:
- ruby specscript.rb
artifacts:
paths:
- public
only:
- master
No preview for this file type
scroll = new ScrollComponent
width: Screen.width
# y: sketch2.height
height: 800
backgroundColor: '#FFF'
scroll.scrollHorizontal = false
# Import file "networkgraph"
sketch2 = Framer.Importer.load("imported/networkgraph@1x")
# Create the draggable layer
layerA = new Layer
x: Align.center
y: sketch2.height
width: Screen.width
height: 3000
parent: scroll.content
layerA.style.background = "-webkit-linear-gradient(top, #000000 0%, #FFFFFF 100%)"
layerB = new Layer
height: layerA.height
width: 40
y: sketch2.height
parent: scroll.content
backgroundColor: "#FF0000"
# sketch2.Gitlab_Header.parent = scroll.content
This diff is collapsed.
{
"propertyPanelToggleStates" : {
"Filters" : false
},
"deviceOrientation" : 0,
"sharedPrototype" : 0,
"contentScale" : 1,
"deviceType" : "desktop-safari-1280-800",
"selectedHand" : "",
"updateDelay" : 0.3,
"deviceScale" : "fit",
"foldedCodeRanges" : [
],
"orientation" : 0,
"fullScreen" : false
}
\ No newline at end of file
This diff is collapsed.
(function() {
function isFileLoadingAllowed() {
return (window.location.protocol.indexOf("file") == -1)
}
function isHomeScreened() {
return ("standalone" in window.navigator) && window.navigator.standalone == true
}
function isCompatibleBrowser() {
return Utils.isWebKit()
}
var alertNode;
function dismissAlert() {
alertNode.parentElement.removeChild(alertNode)
loadProject()
}
function showAlert(html) {
alertNode = document.createElement("div")
alertNode.classList.add("framerAlertBackground")
alertNode.innerHTML = html
document.addEventListener("DOMContentLoaded", function(event) {
document.body.appendChild(alertNode)
})
window.dismissAlert = dismissAlert;
}
function showBrowserAlert() {
var html = ""
html += "<div class='framerAlert'>"
html += "<strong>Error: Not A WebKit Browser</strong>"
html += "Your browser is not supported. <br> Please use Safari or Chrome.<br>"
html += "<a class='btn' href='javascript:void(0)' onclick='dismissAlert();'>Try anyway</a>"
html += "</div>"
showAlert(html)
}
function showFileLoadingAlert() {
var html = ""
html += "<div class='framerAlert'>"
html += "<strong>Error: Local File Restrictions</strong>"
html += "Preview this prototype with Framer Mirror or learn more about "
html += "<a href='https://github.com/koenbok/Framer/wiki/LocalLoading'>file restrictions</a>.<br>"
html += "<a class='btn' href='javascript:void(0)' onclick='dismissAlert();'>Try anyway</a>"
html += "</div>"
showAlert(html)
}
function showHomeScreenAlert() {
link = document.createElement("link");
link.href = "framer/mirror.css"
link.type = "text/css"
link.rel = "stylesheet"
link.media = "screen"
document.addEventListener("DOMContentLoaded", function(event) {
document.getElementsByTagName("head")[0].appendChild(link)
})
var html = ""
html += "<figure class='icon-close' href='javascript:void(0)' onclick='dismissAlert();'></figure>"
html += "<section class='wrapper'>"
html += "<figure class='icon-framer'></figure><h1>Install Prototype</h1>"
html += "<p>Tap <div class='share'><figure class='icon-share'></figure> Share</div>, then choose 'Add to Home Screen'</p> "
html += "<section class='arrow'><figure class='icon-arrow'></figure></section>"
html += "</section>"
showAlert(html)
}
function loadProject() {
CoffeeScript.load("app.coffee")
}
function setDefaultPageTitle() {
// If no title was set we set it to the project folder name so
// you get a nice name on iOS if you bookmark to desktop.
document.addEventListener("DOMContentLoaded", function() {
if (document.title == "") {
if (window.FramerStudioInfo && window.FramerStudioInfo.documentTitle) {
document.title = window.FramerStudioInfo.documentTitle
} else {
document.title = window.location.pathname.replace(/\//g, "")
}
}
})
}
function init() {
if (Utils.isFramerStudio()) {
return
}
setDefaultPageTitle()
if (!isCompatibleBrowser()) {
return showBrowserAlert()
}
if (!isFileLoadingAllowed()) {
return showFileLoadingAlert()
}
// if (Utils.isMobile() && !isHomeScreened()) {
// return showHomeScreenAlert()
// }
loadProject()
}
init()
})()
Source diff could not be displayed: it is too large. Options to address this: view the blob.
This diff is collapsed.
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"myModule":[function(require,module,exports){
exports.myVar = "myVariable";
exports.myFunction = function() {
return print("myFunction is running");
};
exports.myArray = [1, 2, 3];
},{}]},{},[])
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvRGltaXRyaWUvR2l0SW5IZXJlL2dpdGxhYi1kZXNpZ24vcHJvZ3Jlc3MvZGltaXRyaWUvbmV0d29yay1ncmFwaC9uZXR3b3JrLmZyYW1lci9tb2R1bGVzL215TW9kdWxlLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0lBLE9BQU8sQ0FBQyxLQUFSLEdBQWdCOztBQUVoQixPQUFPLENBQUMsVUFBUixHQUFxQixTQUFBO1NBQ3BCLEtBQUEsQ0FBTSx1QkFBTjtBQURvQjs7QUFHckIsT0FBTyxDQUFDLE9BQVIsR0FBa0IsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiIyBBZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHlvdXIgcHJvamVjdCBpbiBGcmFtZXIgU3R1ZGlvLiBcbiMgbXlNb2R1bGUgPSByZXF1aXJlIFwibXlNb2R1bGVcIlxuIyBSZWZlcmVuY2UgdGhlIGNvbnRlbnRzIGJ5IG5hbWUsIGxpa2UgbXlNb2R1bGUubXlGdW5jdGlvbigpIG9yIG15TW9kdWxlLm15VmFyXG5cbmV4cG9ydHMubXlWYXIgPSBcIm15VmFyaWFibGVcIlxuXG5leHBvcnRzLm15RnVuY3Rpb24gPSAtPlxuXHRwcmludCBcIm15RnVuY3Rpb24gaXMgcnVubmluZ1wiXG5cbmV4cG9ydHMubXlBcnJheSA9IFsxLCAyLCAzXSJdfQ==
progress/dimitrie/network-graph/network.framer/framer/images/background.png

125 B

progress/dimitrie/network-graph/network.framer/framer/images/cursor-active.png

2.9 KiB

progress/dimitrie/network-graph/network.framer/framer/images/cursor-active@2x.png

7.61 KiB

progress/dimitrie/network-graph/network.framer/framer/images/cursor.png

2.84 KiB

progress/dimitrie/network-graph/network.framer/framer/images/cursor@2x.png

8.19 KiB

progress/dimitrie/network-graph/network.framer/framer/images/icon-120.png

878 B

progress/dimitrie/network-graph/network.framer/framer/images/icon-152.png

1.36 KiB

progress/dimitrie/network-graph/network.framer/framer/images/icon-180.png

1.66 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment