Angular Contact Form

Developer
Size
7,343 Kb
Views
40,480

How do I make an angular contact form?

Angular validation and fun CSS transitions. My first try with Angular!. What is a angular contact form? How do you make a angular contact form? This script and codes were developed by Katy DeCorah on 28 July 2022, Thursday.

Angular Contact Form Previews

Angular Contact Form - Script Codes HTML Codes

<!DOCTYPE html>
<html class="ng-app">
<head> <meta charset="UTF-8"> <title>Angular Contact Form</title> <script src="http://s.codepen.io/assets/libs/modernizr.js" type="text/javascript"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <link rel='stylesheet prefetch' href='css/23c0352cf1813420a04865d33.css'> <style> /* NOTE: The styles were added inline because Prefixfree needs access to your styles and they must be inlined if they are on local disk! */ @import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css);
@import url(http://fonts.googleapis.com/css?family=Raleway:400);
body { font-family: "Raleway", sans-serif; background: #373737; color: #ebebeb;
}
.container { width: 20em; position: relative;
}
form.hidden { position: absolute; width: 20em; top: -100em; -moz-transform: scale(0.25); -ms-transform: scale(0.25); -webkit-transform: scale(0.25); transform: scale(0.25); -moz-transition: -moz-transform 0.5s ease-in, top 0.5s ease-in 0.4s; -o-transition: -o-transform 0.5s ease-in, top 0.5s ease-in 0.4s; -webkit-transition: -webkit-transform 0.5s ease-in, top 0.5s ease-in; -webkit-transition-delay: 0s, 0.4s; transition: transform 0.5s ease-in, top 0.5s ease-in 0.4s;
}
legend { background: #5C8AB8; color: white; padding: 1em 1.25em; font-size: 1.75em; border-radius: 0.2em 0.2em 0 0; position: relative; display: block; width: 100%;
}
legend:after { content: ""; position: absolute; width: 0; height: 0; border-style: solid; border-color: #5C8AB8 transparent transparent; border-width: 0.4em; left: 2.2em; top: 100%;
}
fieldset { background: #ddddde; width: 100%; padding: 1.75em 0 0.25em;
}
label { display: block; color: #646d76; position: relative; margin: 0 2em 0.75em; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
label input, label textarea { display: block; font-size: 1em; width: 100%; margin: 0.25em 0; padding: 0.5em 0.75em; border: none; background: #f9f9fa; border-radius: 0.2em; font-family: "Raleway", sans-serif; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
label input:focus, label textarea:focus { outline: none; box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2); -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
label textarea { min-height: 6em;
}
.form-controls { padding: 0.25em 2em 1.5em; background: #ddddde; border-radius: 0 0 0.2em 0.2em;
}
.form-controls .btn { color: white; padding: 1em 0; border-radius: 0.25em; border: none; display: block; cursor: pointer; font-family: "Raleway", sans-serif;
}
.form-controls .btn-send { background: #60a531; width: 100%; font-size: 1.25em; filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); opacity: 1; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
.form-controls .btn-send:hover { background: #55912b;
}
.form-controls [disabled] { filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); opacity: 0.5; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s; cursor: default;
}
.required, .ok, .invalid { -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
.required:before, .ok:before, .invalid:before { font-family: FontAwesome; font-weight: normal; font-style: normal; text-decoration: inherit; -webkit-font-smoothing: antialiased; padding: 0.2em; position: absolute; top: 0.1em; right: 0.1em; font-size: 1.5em; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
.required:before { content: "\f069"; color: #efefef;
}
.invalid:before { content: "\f057"; color: rgba(165, 49, 57, 0.5);
}
.ok:before { content: "\f058"; color: #60a531; -moz-transition: -moz-transform 0.5s linear; -o-transition: -o-transform 0.5s linear; -webkit-transition: -webkit-transform 0.5s linear; transition: transform 0.5s linear; -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);
}
.sent { filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); opacity: 1; -moz-transition: all 0.5s ease-in-out 1s; -o-transition: all 0.5s ease-in-out 1s; -webkit-transition: all 0.5s ease-in-out; -webkit-transition-delay: 1s; transition: all 0.5s ease-in-out 1s;
}
.sent.hidden { filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); opacity: 0; position: absolute; z-index: -1;
}
.sent h1 { font-size: 3em; text-align: center;
}
.sent h1 small { font-size: 0.5em; font-weight: 400; display: block; text-align: right; margin-top: 0.5em;
}
.no-placeholder { display: none;
}
.ie-lt9 .no-placeholder { display: block;
} </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
</head>
<body> <div class='container'> <div class='sent' ng-class="{ 'hidden': !submit }"> <h1> Message sent! <small>&hellip;okay, not really.</small> </h1> </div> <form name='contactForm' ng-class="{ 'hidden': submit }"> <fieldset> <legend>Contact Us!</legend> <label for='email' ng-class="{'required':contactForm.email.$error.required,'invalid':contactForm.email.$error.email,'ok':contactForm.email.$valid}"> <span class='no-placeholder'> Email </span> <input id='email' name='email' ng-model='email' placeholder='Email' required type='email'> </label> <label for='subject' ng-class="{'required':contactForm.subject.$error.required,'ok':contactForm.subject.$valid}"> <span class='no-placeholder'> Subject </span> <input id='subject' name='subject' ng-model='subject' placeholder='Subject' required type='text'> </label> <label for='message' ng-class="{'required':contactForm.message.$error.required,'ok':contactForm.message.$valid}"> <span class='no-placeholder'> Message </span> <textarea name='message' ng-model='message' placeholder='Message' required></textarea> </label> </fieldset> <div class='form-controls'> <button class='btn btn-send' ng-click='submit = ! submit' ng-disabled='contactForm.$invalid' type='submit'> Send </button> </div> </form>
</div> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular.min.js'></script> <script src="js/index.js"></script>
</body>
</html>

Angular Contact Form - Script Codes CSS Codes

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css);
@import url(http://fonts.googleapis.com/css?family=Raleway:400);
body { font-family: "Raleway", sans-serif; background: #373737; color: #ebebeb;
}
.container { width: 20em; position: relative;
}
form.hidden { position: absolute; width: 20em; top: -100em; -moz-transform: scale(0.25); -ms-transform: scale(0.25); -webkit-transform: scale(0.25); transform: scale(0.25); -moz-transition: -moz-transform 0.5s ease-in, top 0.5s ease-in 0.4s; -o-transition: -o-transform 0.5s ease-in, top 0.5s ease-in 0.4s; -webkit-transition: -webkit-transform 0.5s ease-in, top 0.5s ease-in; -webkit-transition-delay: 0s, 0.4s; transition: transform 0.5s ease-in, top 0.5s ease-in 0.4s;
}
legend { background: #5C8AB8; color: white; padding: 1em 1.25em; font-size: 1.75em; border-radius: 0.2em 0.2em 0 0; position: relative; display: block; width: 100%;
}
legend:after { content: ""; position: absolute; width: 0; height: 0; border-style: solid; border-color: #5C8AB8 transparent transparent; border-width: 0.4em; left: 2.2em; top: 100%;
}
fieldset { background: #ddddde; width: 100%; padding: 1.75em 0 0.25em;
}
label { display: block; color: #646d76; position: relative; margin: 0 2em 0.75em; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
label input, label textarea { display: block; font-size: 1em; width: 100%; margin: 0.25em 0; padding: 0.5em 0.75em; border: none; background: #f9f9fa; border-radius: 0.2em; font-family: "Raleway", sans-serif; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
label input:focus, label textarea:focus { outline: none; box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2); -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
label textarea { min-height: 6em;
}
.form-controls { padding: 0.25em 2em 1.5em; background: #ddddde; border-radius: 0 0 0.2em 0.2em;
}
.form-controls .btn { color: white; padding: 1em 0; border-radius: 0.25em; border: none; display: block; cursor: pointer; font-family: "Raleway", sans-serif;
}
.form-controls .btn-send { background: #60a531; width: 100%; font-size: 1.25em; filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); opacity: 1; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
.form-controls .btn-send:hover { background: #55912b;
}
.form-controls [disabled] { filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); opacity: 0.5; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s; cursor: default;
}
.required, .ok, .invalid { -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
.required:before, .ok:before, .invalid:before { font-family: FontAwesome; font-weight: normal; font-style: normal; text-decoration: inherit; -webkit-font-smoothing: antialiased; padding: 0.2em; position: absolute; top: 0.1em; right: 0.1em; font-size: 1.5em; -moz-transition: all 0.5s; -o-transition: all 0.5s; -webkit-transition: all 0.5s; transition: all 0.5s;
}
.required:before { content: "\f069"; color: #efefef;
}
.invalid:before { content: "\f057"; color: rgba(165, 49, 57, 0.5);
}
.ok:before { content: "\f058"; color: #60a531; -moz-transition: -moz-transform 0.5s linear; -o-transition: -o-transform 0.5s linear; -webkit-transition: -webkit-transform 0.5s linear; transition: transform 0.5s linear; -moz-transform: rotate(360deg); -ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);
}
.sent { filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false); opacity: 1; -moz-transition: all 0.5s ease-in-out 1s; -o-transition: all 0.5s ease-in-out 1s; -webkit-transition: all 0.5s ease-in-out; -webkit-transition-delay: 1s; transition: all 0.5s ease-in-out 1s;
}
.sent.hidden { filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); opacity: 0; position: absolute; z-index: -1;
}
.sent h1 { font-size: 3em; text-align: center;
}
.sent h1 small { font-size: 0.5em; font-weight: 400; display: block; text-align: right; margin-top: 0.5em;
}
.no-placeholder { display: none;
}
.ie-lt9 .no-placeholder { display: block;
}

Angular Contact Form - Script Codes JS Codes

// Color Inspriation: http://dribbble.com/shots/1212319-Ampersand-Beta-Sign-Up-Form
Angular Contact Form - Script Codes
Angular Contact Form - Script Codes
Home Page Home
Developer Katy DeCorah
Username katydecorah
Uploaded July 28, 2022
Rating 4.5
Size 7,343 Kb
Views 40,480
Do you need developer help for Angular Contact Form?

Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!

Katy DeCorah (katydecorah) Script Codes
Create amazing SEO content with AI!

Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!