Skip to content

Instantly share code, notes, and snippets.

View mortenjust's full-sized avatar

Morten Just mortenjust

View GitHub Profile
@mortenjust
mortenjust / ColorInterpolator.swift
Last active June 28, 2023 12:04
Interpolate colors with easing functions
import AppKit
import SwiftUI
/// Based on https://github.com/ipedro/SmoothGradientView
/// See documentation on `interpolate:`
///
/// How to use:
///
/// You can interpolate any array of `CGColor`, `NSColor` or `Color`to any array of any of the 3 supported types.
///
//
// Blobs.swift
// SwiftUI Demos
//
// Created by Morten Just on 1/31/23.
//
import SwiftUI
struct Blobs: View {
//
// DarkModeMasker.swift
// SwiftUI Demos
//
// Created by Morten Just on 1/22/23.
// https://twitter.com/joshguospace/status/1617101052192649216?s=12
import SwiftUI
import Charts
//
// DarkModeMasker.swift
// SwiftUI Demos
//
// Created by Morten Just on 1/22/23.
// https://twitter.com/joshguospace/status/1617101052192649216?s=12
import SwiftUI
import Charts
import SwiftUI
// MARK: Main
struct TwitterBluePlus: View {
@State var topMenuItems : [MenuItem] = [MenuItem(title: "For you", icon: nil), MenuItem(title: "Following", icon: nil)]
@State var selectedIdx = 0
var selected : MenuItem { topMenuItems[selectedIdx] }
@mortenjust
mortenjust / NSImage + withoutAlpha.swift
Created July 22, 2022 07:59
Remove alpha transparency from NSImage
extension NSImage {
func withoutAlpha() -> NSImage? {
// based on https://gist.github.com/mishimay/7b65167cf829e022f46dfa749d018661
guard let cgImage = self.cgImage(forProposedRect: nil, context: nil, hints: nil) else { return nil }
let context = CGContext(data: nil, width: cgImage.width, height: cgImage.height, bitsPerComponent: cgImage.bitsPerComponent, bytesPerRow: cgImage.bytesPerRow, space: cgImage.colorSpace!, bitmapInfo: CGImageAlphaInfo.noneSkipLast.rawValue)!
context.draw(cgImage, in: CGRect(x: 0, y: 0, width: context.width, height: context.height))
guard let newCg = context.makeImage() else { return nil }
return NSImage(cgImage: newCg, size: .zero)
@mortenjust
mortenjust / WeatherKit.ts
Created July 21, 2022 18:29
WeatherKit Typescript types
export interface WeatherKit {
currentWeather: CurrentWeather;
forecastDaily: ForecastDaily;
forecastHourly: ForecastHourly;
}
export interface CurrentWeather {
name?: string;
metadata?: Metadata;
asOf?: Date;
Company: Apple
Product: Apple AR Glasses
Short emotional tagline: The future is closer than it appears
Script:
In our lifetimes we’ve seen technology change our lives
In ways we couldn’t imagine
In the past decade alone, it’s become an extension of who we are
So when we talk about the future
We don’t just mean flying cars and robots
We mean a future where we’re not tethered to our screens
Company: Danske Bank
Product: Vi låner penge ud til folk og tager renter
Short emotional tagline: Får du en god idé?
Script:
Hvad gør du, når du får en god idé?
Har du modet til at tro på den og gøre noget ved den?
Er du bange for, at andre vil tage din idé og gøre den bedre?
Eller er du bare bange for at tabe?
Så hvad gør du?
Siger du fra og sætter en stopper for din drøm?
The following are tv commercials in the style of a highly emotional lifestyle branding campaign from Nike. They are inspirational and upbeat. Feel something. Dream bigger. The script contains 11 short lines.
Company: Nike
Product: Shoes
Short emotional tagline: Never too far down
Script:
We've all been underestimated and counted out
In those moments we felt like it was over
But it's when we're given no chance
that we somehow found that last bit of strength to keep fighting