JSFiddle - React, Tailwind, and code Playground
by Nick Hulea
HTML
<script src="https://rawgit.com/liabru/matter-js/master/build/matter.js"></script>
SCSS
@import url("https://fonts.googleapis.com/css?family=Montserrat:200,300,400,600");
.more-pens {
position: fixed;
left: 20px;
bottom: 20px;
z-index: 10;
font-family: "Montserrat";
font-size: 12px;
}
a.white-mode,
a.white-mode:link,
a.white-mode:visited,
a.white-mode:active {
font-family: "Montserrat";
font-size: 12px;
text-decoration: none;
background: #212121;
padding: 4px 8px;
color: #f7f7f7;
}
a.white-mode:hover,
a.white-mode:link:hover,
a.white-mode:visited:hover,
a.white-mode:active:hover {
background: #edf3f8;
color: #212121;
}
body {
margin: 0;
padding: 0;
overflow: hidden;
width: 100%;
height: 100%;
background: #EFEFEF;
}
.title {
z-index: 10;
position: absolute;
left: 50%;
top: 50%;
transform: translateX(-50%) translateY(-50%);
font-family: "Montserrat";
text-align: center;
width: 100%;
}
.title h1 {
position: relative;
color: #121212;
font-weight: 600;
font-size: 60px;
padding: 0;
margin: 0;
line-height: 1;
}
.title h1 span {
font-weight: 600;
padding: 0;
margin: 0;
color: #BBB;
}
.title h3 {
font-weight: 200;
font-size: 20px;
padding: 0;
margin: 0;
line-height: 1;
color: #121212;
letter-spacing: 2px;
}
Babel + JSX
let Engine = Matter.Engine,
Render = Matter.Render,
World = Matter.World,
Mouse = Matter.Mouse,
Bodies = Matter.Bodies,
Common = Matter.Common,
Vertices = Matter.Vertices,
Svg = Matter.Svg,
Constraint = Matter.Constraint,
Composites = Matter.Composites,
MouseConstraint = Matter.MouseConstraint;
// create an engine
let engine = Engine.create();
let idRAF = null;
function init(){
let numm = Math.random();
$("canvas").remove();
cancelAnimationFrame(idRAF);
let width = $(window).width();
let height = $(window).height();
let offset = -1;
// module aliases
engine.events = {};
World.clear(engine.world);
Engine.clear(engine);
engine = Engine.create();
engine.world.gravity.x = 0;
engine.world.gravity.y = 0;
let mouseConstraint = MouseConstraint.create(engine);
World.add(engine.world, mouseConstraint);
// create a renderer
let render = Render.create({
element: document.body,
engine: engine,
options: {
wireframes: false,
background: 'transparent',
width: width,
height: height,
showDebug: false,
showBroadphase: false,
showBounds: false,
showVelocity: false,
showCollisions: false,
showSeparations: false,
showAxes: false,
showPositions: false,
showAngleIndicator: false,
showIds: false,
showShadows: false,
showVertexNumbers: false,
showConvexHulls: false,
showInternalEdges: false,
showMousePosition: false
}
});
// create two boxes and a ground
// add all of the bodies to the world
World.add(engine.world, [
Bodies.rectangle(width / 2, height / 2, 500, 46, {
isStatic: true,
render: {
fillStyle: "transparent"
}
}),
Bodies.rectangle(width / 2, (height / 2) - 40, 180, 20, {
isStatic: true,
render: {
fillStyle: "transparent"
}
}),
Bodies.rectangle(width / 2, (height / 2) + 40,...