Skip to content

aNNiMON/HotaruFX

Repository files navigation

HotaruFX

Programming language for creating animations

App running on Linux Mint

Demo

Logo

composition(320, 57, 25, "#2F2F2F")

LOGO = text({
  x: -2135,
  y: 0,
  valign: "CENTER",
  text: 'HotaruFX',
  fill: '#FDFD42',
  font: 800,
  css: '
    -fx-font-weight: bold;
    -fx-effect: dropshadow(three-pass-box, rgba(100,183,3,0.8), 68, 0, 0.5, 0.25);
  '
})

LOGO@fill
  .add(2 sec, "#82fd42", easeOut)
  .add(4 sec, "#FDFD42", ease)

render(LOGO)

Font icons

composition(1280, 720, 50)

LOVE = text({
  x: -80
  y: 0
  valign: "CENTER"
  text: "\uf004"
  fill: '#cf1010'
  font: 200
  opacity: 0
})
LOVE.scaleX = LOVE.scaleY = 0
LOVE@scaleX
  .add(100 ms, 1.0, easeIn)
  .add(400 ms, 1.4, easeOut)
  .add(800 ms, 1.1, easeOut)
LOVE@scaleY
  .add(100 ms, 1.0, easeIn)
  .add(400 ms, 1.4, easeOut)
  .add(800 ms, 1.1, easeOut)
LOVE@opacity
   .add(350 ms, 1, easeIn)
   .add(600 ms, 1, hold)
   .add(800 ms, 0, easeOut)

GITHUB = text({
  x: -45
  y: 0
  valign: "CENTER"
  text: "\uf09b"
  fill: 'white'
  font: 150
})
GITHUB@fill
   .add(600 ms, 'white', hold)
   .add(800 ms, '#cf1010', easeOut)
GITHUB@opacity
   .add(1.2 sec, 1, hold)
   .add(1.5 sec, 0, easeOut)

render(LOVE GITHUB)

Text clip

composition(1280, 720, 30)

CLIP = circle({
  cx: 400,
  cy: 0,
  radius: 80
})

TEXT = text({
  x: -220,
  y: 0,
  text: "HotaruFX",
  fill: "white",
  stroke: "black",
  font: 100,
  valign: "CENTER",
  underline: true,
  clip: CLIP,
  css: '
    -fx-effect: dropshadow(two-pass-box, rgba(0,0,0,0.8), 5, 0, 0.5, 0.25);
  '
})

CLIP@cx
  .add(1.2 sec, -210, easeOut)
  .add(3 sec, 0, ease)
CLIP@radius
  .add(1.2 sec, 80, discrete)
  .add(3 sec, 300, ease)
TEXT@fill
  .add(3 sec, 'white', hold)
  .add(4 sec, '#D6EA2A', easeOut)

render(CLIP, TEXT)

See other examples in examples folder or in File -> Open Example menu.

Build

./gradlew shadowJar

Build requires JDK 17 or higher and Java FX support. Assembled binaries are stored in app/build/libs directory.

Run

./gradlew run

Application requires JRE 17 or higher and Java FX support.

License

Apache 2.0. See license information.