Imba adalah bahasa pemrograman Web yang cepat dalam dua hal: sintaks Imba yang menghemat waktu dengan tag dan gaya bawaan menghasilkan lebih sedikit pengetikan dan perpindahan file sehingga Anda dapat membangun sesuatu dengan cepat. Memori DOM revolusioner Imba satu tingkat lebih cepat daripada perpustakaan DOM virtual, sehingga Anda dapat membangun hal-hal yang cepat.
- Mengompilasi ke Javascript
- Bekerja dengan Node + npm
- Sintaks yang Cerdas dan Minimal
- Tag & Gaya DOM Bawaan
- Kinerja Luar Biasa
Pintar, Cantik, Minimal
Sintaks Imba minimal, indah, dan penuh dengan fitur cerdas. Lebih sedikit penekanan tombol, dan lebih sedikit perpindahan file berarti Anda akan dapat membangun sesuatu dengan cepat.
import './canvas'import './pickers'global css body m:0 p:0 rd:lg bg:yellow1 of:hiddenconst strokes = [1,2,3,5,8,12]const colors = ['#F59E0B','#10B981','#3B82F6','#8B5CF6']const state = {stroke: 5, color: '#3B82F6'}tag App 'draw here' imba Kependekan css seperti tailwind dan warna, gaya inline, pengikatan data dua arah, css bawaan, komponen web asli.
Tidak ada kode atau stylesheet tersembunyi di sini. Apa yang Anda lihat adalah apa yang Anda dapatkan.
Bahasa Full-Stack
Imba bukanlah latihan akademis atau proyek mainan. Kami telah membangun Imba selama bertahun-tahun untuk membangun frontend dan backend aplikasi web. Tujuan kami selalu menciptakan bahasa yang paling menyenangkan dan kuat untuk membuat aplikasi web yang kaya.
import express from 'express'import passport from 'passport'import index from './index'import image from './confused-cat'const app = express()app '/404' do(req,res) res String "We could not find this page!"
"Go home!"app '/:page' do(req,res) res bodyapp '/' do(req,res) resct('/top')imba app(8001)
Impor perpustakaan javascript apa pun, rendering sisi server, gambar diselesaikan dan dibundel, melayani dengan reload langsung, penggabungan aset++. Imba bekerja sama baiknya di server maupun di klien. Ini sepenuhnya beroperasi dengan ekosistem npm + node.
Evolusi Styling
Terinspirasi oleh Tailwind, Imba membawa gaya langsung ke dalam kode Anda. Gaya dapat dibatasi pada file, komponen, dan bahkan bagian dari pohon tag Anda. Pengubah gaya seperti @hover, @lg, @landscape, dan @dark dapat digunakan untuk gaya yang sangat ringkas namun kuat.
import './styles'tag app-clock let ts = Date! / 60000 + utc * 60 bodyChild 'New York' 'San Fran' 'London' 'Tokyo'Gaya juga dapat diatur langsung pada elemen. Gaya inline berfungsi dengan semua pengubah.
tag app-clock css div pos:abs b:50% l:50% x:-50% origin:50% 100% let ts = Date! / 60000 + utc * 60 name tag app css app-clock pos:rel w:100% rd:2 imba Cepat Sekali, Tanpa Konfigurasi
Imba dilengkapi dengan bundler bawaan berdasarkan esbuild yang sangat cepat. Impor stylesheet, gambar, typescript, html, pekerja, dan lainnya tanpa konfigurasi apa pun. Penggabungan sangat cepat sehingga tidak ada perbedaan antara mode produksi dan pengembangan - semuanya terjadi sesuai permintaan.
import Game from './state'import {Tile} from './tile'css .tiles fl:1 w:100% h:100% c:blue1 fs:30px d:grid grid: 1fr 1fr 1fr / 1fr 1fr 1fr tag App game = new Game for tile,i in game bodyChild Memulai
Memulai dengan Imba semudah menjalankan npx imba create di terminal Anda. Lihat halaman memulai kami untuk informasi lebih lanjut tentang belajar Imba, mendapatkan bantuan, dan peralatan.
Sintaks Dasar
let number = 42let bool = yes# stringslet string = 'the answer is 42'let dynamic = "the answer is {number}"let template = `the answer is {number}`# dimensionslet length = 20pxlet duration = 150mslet regex = /answer is (\d+)/let array = [1,2,3]let object = {name: 'Imba', type: 'language'}
class Todo # properties title completed = no due = null # methods def complete completed = yes # getters get overdue due and due < new Datelet todo = new Todo title: 'Read introduction'
# elements are first class citizensconst list = - "Remember milk"
- "Greet visitor"# setting classes on elements
"Hello world"# setting dynamic and conditional classes "Panel"# binding handlers (with modifiers) "Panel"# looping over iterablesfor {id,name} of iterable "{name} has id {id}"# looping over Object pairsfor own key,value of object [key,value]# fast looping over arraysfor member,index in array member
Bergabunglah dengan Kami!
Kami adalah komunitas kecil namun aktif dari pengguna Imba awal. Bergabunglah di Discord untuk menyapa! Rekaman semua pertemuan komunitas kami dapat ditemukan di saluran YouTube resmi Imba.
Imba telah dikembangkan secara aktif selama lebih dari 6 tahun, dan aktivitas terus meningkat. Kami mencari kontributor yang ingin membantu meningkatkan dokumentasi dan ekosistem di sekitar Imba.
Semua orang dipersilakan untuk mengikuti pertemuan komunitas (melalui Zoom)! Ini adalah tempat yang bagus untuk melaporkan masalah Anda, berkumpul, dan berbicara tentang proyek Anda menggunakan Imba. Untuk waktu pertemuan yang tepat, silakan gunakan grup Meetup.