SCROLL

brands &
indentities

Over the years I've had the pleasure to work with an assortment of clients on building a new identity or just evolving their current one. Here are a few that i've created.

the ground up

Ceres Environmental, a disaster relief company that specialized in tree removal and disposal, had a piece of land and an abundance of mulch without a means to distribute it. I was approached by the new executive director to create a fresh brand that would stimulate growth for the company. After creating a strong visual system we were able to help The Ground Up pull itself out the dirt to become one of the largest landscape supply companies in Texas.

portico kirby

Portico Kirby is a luxury apartment complex located in Houston, TX.  Working closely with L&P Marketing, we were hired to bring a clean identity package and website that reflected their style, similar to the likes of the Delano Hotel in Miami, FL.

J. Cogliandro

Logo design and identity for Joe Cogliandro, an internationally renowned and award winning wedding & boudoir photography. The logo type focuses on the ideas of simplicity and sophistication that compliment the style of Joe's signature look.

purisa skincare

Purisa is an organic skincare line crafted with a set of formulas that have been successfully used for 25 years. The goal was to produce a modern line of packaging that reflected the pure ingredients used in their products.
  • Art Direction
  • branding
  • package design
  • photography

fashion houston

Fashion Houston was a week long runway event featuring Houston's top designers. We were asked to help reshape the brand identity so that it fit more in-line with the cutting edge clothing on display at the event.

mashup

I have the best words.
Say hi and I'll share some.

// Wait for Webflow to initialize document.addEventListener('DOMContentLoaded', function() { // Register ScrollTrigger plugin gsap.registerPlugin(ScrollTrigger); // Utility function to check if we're in the Webflow editor const isWebflowEditor = () => { return window.Webflow && window.Webflow.env('editor'); }; // Only run animations if we're not in the editor if (!isWebflowEditor()) { // Fade in elements with class 'fade-in' as they scroll into view gsap.utils.toArray('.fade-in').forEach(element => { gsap.from(element, { scrollTrigger: { trigger: element, start: 'top 80%', toggleActions: 'play none none reverse' }, opacity: 0, y: 30, duration: 1, ease: 'power2.out' }); }); // Slide in elements from left with class 'slide-left' gsap.utils.toArray('.slide-left').forEach(element => { gsap.from(element, { scrollTrigger: { trigger: element, start: 'top 75%', toggleActions: 'play none none reverse' }, opacity: 0, x: -50, duration: 1, ease: 'power2.out' }); }); // Slide in elements from right with class 'slide-right' gsap.utils.toArray('.slide-right').forEach(element => { gsap.from(element, { scrollTrigger: { trigger: element, start: 'top 75%', toggleActions: 'play none none reverse' }, opacity: 0, x: 50, duration: 1, ease: 'power2.out' }); }); // Scale up elements with class 'scale-up' gsap.utils.toArray('.scale-up').forEach(element => { gsap.from(element, { scrollTrigger: { trigger: element, start: 'top 80%', toggleActions: 'play none none reverse' }, opacity: 0, scale: 0.5, duration: 1, ease: 'back.out(1.7)' }); }); // Stagger animation for lists with class 'stagger-list' gsap.utils.toArray('.stagger-list').forEach(list => { const items = list.children; gsap.from(items, { scrollTrigger: { trigger: list, start: 'top 80%', toggleActions: 'play none none reverse' }, opacity: 0, y: 20, duration: 0.8, stagger: 0.2, ease: 'power2.out' }); }); // Hero section animation (add class 'hero-section' to your hero container) const heroSection = document.querySelector('.hero-section'); if (heroSection) { const heroTimeline = gsap.timeline({ defaults: { ease: 'power2.out' }}); heroTimeline .from('.hero-title', { opacity: 0, y: 30, duration: 1 }) .from('.hero-subtitle', { opacity: 0, y: 20, duration: 1 }, '-=0.5') .from('.hero-cta', { opacity: 0, y: 20, duration: 1 }, '-=0.5'); } } });