As Barborak announced a couple of days ago, we’ve decided to take Frontal open source. We received a lot of valuable feedback from users over the past 8 months – around 25 live sites were built using Frontal during that time. Many of them were HTML sites that strategically used the language for specific interactive features like video, animations, scrollbars, etc. During this time, it became clear to us that developers want to use Frontal the same way they use open standards like HTML, JavaScript, CSS, etc – employing each one to do what they do best.
Luckily, we created Frontal to be web-native – it’s a language that embeds and works seamlessly within the HTML/JS ecosystem. (As opposed to standalone technology that sits beside web standards, like what Flash is today.) However, to fully achieve this web-native vision, we realized that it wasn’t enough for the language itself to fit this ethos, our usage model needed to fit it as well. So after a lot of conversations internally and with our partners, we’ve decided to take Frontal open source. And we’ve gone all the way by adopting the OSI-approved New BSD license model – one of the most open open source licenses in the market. By taking this step, I believe we’ve done something pretty momentous – we’ve made Flash open source. There are a number of huge implications as a result. Here are three ‘the tip of the iceberg’ examples:
You can now use Flash in bite-sized pieces – Creating in Flash has traditionally required a substantial upfront investment in time and money. Through Frontal, Flash can now be used where, when, and how it’s needed. No new file creation is necessary, just place the Frontal code into your HTML and run it. And because Frontal uses the same standards as HTML, JavaScript and CSS, understanding how to use it is easy for most web designers.
Flash collaboration is now unleashed – Making Frontal open source and transparent means that designers / developers can now easily share interactive content approaches with each other. All you have to do is mouse-over a Frontal element embedded in a page, right-click and select ‘View Frontal Source’. For the first time, designers can easily copy, paste and customize interactive content and apps for their own use – all for free.
The most practical interactive web content solution – Now running video and creating animations in HTML pages is dead simple. This simplicity is driven by two factors – the Frontal language’s standards-based approach, and the fact that 98% of browsers have the Flash plug-in. (An added bonus – Frontal is both search engine indexable and supports deep-linking.) This leaves you free to create lightweight interactive website features quickly and easily, without having to develop workarounds for different browser implementations of HTML5. As an example, here’s a simple interactive animation written in HTML5:
<!DOCTYPE html>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<style type=”text/css”>
#h34
{
cursor: pointer;
height: 50px;
background: #e36b00;
width: 50px;
-webkit-border-radius: 25px;
-moz-border-radius: 25px;
padding: 0px;
display: inline-block;
position: absolute;
left: 100px;
top: 30px;
}
</style>
<script text=”text/javascript”>
function loadDemo ( ) {
var vendor = (Browser.Engine.gecko) ? ‘Moz’ : ((Browser.Engine.webkit) ? ‘Webkit’ : ”); // Firefox or webkit
if(vendor == “Moz”){ // extends mootools styles for Firefox
var newStyles = new Hash({
‘MozBorderRadius’: ‘@px @px @px @px’,
‘MozBoxShadow’: ‘@px @px @px rgb(@, @, @)’
});
}
if(vendor == “Webkit”){ // extends mootools styles for Chrome and Safari
var newStyles = new Hash({
‘webkitBorderBottomLeftRadius’: ‘@px @px’,
‘webkitBorderBottomRightRadius’: ‘@px @px’,
‘webkitBorderTopLeftRadius’: ‘@px @px’,
‘webkitBorderTopRightRadius’: ‘@px @px’,
‘webkitBoxShadow’: ‘rgb(@, @, @) @px @px @px’
});
}
if(vendor == “Webkit” || vendor == “Moz”){ // set up an animation for each. Very messy
$extend(Element.Styles, newStyles);
$(“h34″).set(‘morph’, {duration: 300, transition: ‘Back:out’, onComplete: function(){
}});
}
if(vendor == “Moz”){ // errr hideous code, but it was late. (I’m so ashamed)
$(“h34″).setStyle(“MozBoxShadow”, “0px 0px 0px #43280D”);
$(“h34″).addEvents({
‘mouseover’: function(){
$(“h34″).morph({‘MozBoxShadow’: “-6px 8px 0px #43280D”, ‘left’: ‘106′, ‘top’: ‘22′, ‘background-color’: ‘#ff7e00′});
},
‘mouseout’: function(){
$(“h34″).morph({‘MozBoxShadow’: “0px 0px 0px #43280D”, ‘left’: ‘100′, ‘top’: ‘30′,’background-color’: ‘#e36b00′});
}
});
}
if(vendor == “Webkit”){
$(“h34″).setStyle(“webkitBoxShadow”, “#43280D 0px 0px 0px”);
$(“h34″).addEvents({
‘mouseover’: function(){
$(“h34″).morph({‘webkitBoxShadow’: “#43280D -6px 8px 0px”, ‘left’: ‘106′, ‘top’: ‘22′, ‘background-color’: ‘#ff7e00′});
},
‘mouseout’: function(){
$(“h34″).morph({‘webkitBoxShadow’: “#43280D 0px 0px 0px”, ‘left’: ‘100′, ‘top’: ‘30′,’background-color’: ‘#e36b00′});
}
});
}
}
</script>
</head>
<body>
<div id=”h34″></div>
<script src=”http://ajax.googleapis.com/ajax/libs/mootools/1.2.4/mootools-yui-compressed.js” type=”text/javascript”></script>
<script text=”text/javascript”>
window.addEvent(“domready”, loadDemo);
</script>
</body>
</html>
Notice all of the Webkit and Mozilla workarounds. Here’s the same thing written in Frontal:
<style>
#h34
{
left: 100px;
top: 30px;
width: 50px;
height: 50px;
background-color: #e36b00;
background-shape: ellipse;
bg-shape-ellipse-width: 50px;
bg-shape-ellipse-height: 50px;
shadow-color: #43280D;
shadow-strength: 1;
shadow-distance: 0;
shadow-angle: 135;
shadow-blur: 0;
style-tween-duration: 8;
}
#h34:hover
{
left: 106px;
top: 22px;
background-color: #ff7e00;
shadow-distance: 8;
}
</style>
<div id=”h34″ />
Of course there are many more implications that we’ll be discussing over the next few months, after we’ve had a chance to fully wrap our heads around them.
So we’re excited as hell! If you’re a practical web developer who believes in using any technology that’s open and works well, then we think we’ve given you a powerful tool. One that will help you deliver great user experiences. And one that will help you leverage your existing skill sets to make more money – people who can develop Flash content and apps tend to make more than standard HTML/JS coders. On the other hand, if you’re a religious developer, and believe that HTML5 will someday do all of the interactive things you’ll want to do, then this news probably doesn’t mean much (though we hope to convert you at some point!).
For those who fall on the practical side, please join us – the community needs your brain and enthusiasm. We’ve set up the Frontal Open Source Project on Google Code:
http://code.google.com/p/frontal/
If you’re ready to get your hands dirty, just go to our home page and follow the directions to get started:
http://frontalcode.com
And if you need any help, have suggestions, or want to submit bugs, please visit our Forums area:
http://www.frontalcode.com/forums/
We’re psyched to work with you to create the next generation of web design!